
java多线程
8k大佬随风
这个作者很懒,什么都没留下…
展开
-
java线程与并发编程-同步器
1.给出同步器的定义同步器指的是控制通用同步方法的类2.描述倒计时门闩(CountDownLatch)的行为倒计时门闩会导致一条或者多条线程在"门口"一直等待直到另一条线程打开这扇门, 线程才得以继续运行它是由一个计数变量和两个操作组成的,这两个操作分别是"导致一条线程等待直到计数变为0" 以及"递减计数变量"3.当调用CountDownLatch的void countDown()方法且计数变为0时会发生什么呢释放所有等待线程4.描述同步屏障的行为同步屏障允许一组线程彼此互相等待,直至抵达某原创 2020-11-16 15:11:05 · 185 阅读 · 0 评论 -
java线程与并发编程-并发工具类和Executor框架
1.并发工具类是什么一组用于克服java底层线程问题的类和接口的框架特别地,低级的并发原语如synchronized和wait()/notify()经常难以正确使用过于依赖这些并发原语会导致性能问题,从而影响了应用程序的扩展性java底层的线程功能也并未包含线程池以及信号量这样的高级构造2.指出并发工具类型位于哪些包下面java.util.concurrent、java.util.concurrent.atomic、java.util.concurrent.locks3.给出任务的定义它的类原创 2020-11-12 15:15:16 · 151 阅读 · 0 评论 -
java线程与并发编程-Thread和Runnable
1.给出线程的定义线程就是一条在程序代码中独立执行的路径2.给出runnable的定义一个runnable就是一段封装在对象中的代码序列,它的类实现了Runnable接口3.Thread类和Runnable接口完成了什么Thread类提供了一个底层操作系统线程架构的统一接口Runnable接口为关联Thread对象的线程提供执行代码4.指出创建一个Runnable对象的两种方式创建一个实现了Runnable接口的匿名类或者使用lambda表达式5.指出关联一个Runnable到一个Thre原创 2020-11-05 13:30:44 · 269 阅读 · 0 评论 -
java线程与并发编程-同步
1.指出与线程相关的三个问题竞态条件、数据竞争、缓存变量2.判断对错:当程序计算的正确性取决于相对的时间或者调度器所控制的多线程交叉时,你会遇到数据竞争问题错当程序计算的正确性取决于相对时间或者调度器所控制的多线程交叉时,竞态条件就会发生3.给出同步的定义同步指的是一种JVM的特性,它用于保证两条及两条以上的线程不会同时在一个临界区中执行4.指出同步的两种属性互斥和可见性5.同步是如何实现出来的基于监听器实现的,它是控制对临界区进行访问的并发构造,必须不可分割地执行每个java对象都关原创 2020-11-09 09:52:31 · 182 阅读 · 0 评论 -
java线程与并发编程-等待和通知
1.给出条件的定义持续执行的前置条件2.描述支持条件的APIwait()方法等待某个条件成立而notify()方法和notifyAll()方法则在这个条件成立时通知处于等待中的线程3.判断对错:wait()方法可以被中断对4.你会调用什么方法来唤醒在同一对象监听器上等待的全部线程调用notifyAll()方法唤醒在同一对象监听器上等待的所有线程5.判断对错:一条已经获取到锁的线程在调用Object的wait()方法时并不会释放掉锁错已经获取锁的线程在调用Object的任意wait()方原创 2020-11-10 08:47:36 · 152 阅读 · 0 评论 -
java线程与并发编程-额外的线程能力
1.给出线程组的定义线程组就是一组线程,由类ThreadGroup表示2.你为何要使用线程组使用一个线程组,你可以对其中的所有线程进行统一操作以简化线程管理3.你为何应该避免使用线程组多数有用的ThreadGroup方法都已经放弃,并且在获取一组活跃线程数和列举这些线程之间存在"检查时间到使用时间"这一类别的竞态条件4.你为何应该认识线程组由于ThreadGroup在处理线程执行过程中产生的异常方面做出的贡献5.给出线程局部变量的定义每个ThreadLocal的实例代表了一个线程局部变量,原创 2020-11-12 15:16:02 · 198 阅读 · 2 评论 -
java线程与并发编程-同步及低级别的锁
1.给出锁的定义锁就是实现了接口Lock的实例,它提供了比synchronized保留字更为弹性的锁操作锁也能通过Condition对象支持等待/通知机制2.当线程进入临界区(通过synchronized保留字控制),Lock对象与内置锁相比,最大的优势是什么当线程进入临界区,较之内置锁,Lock对象最大的好处就是具备退出请求锁的能力3.判断对错:当调用线程没有持有锁,ReentrantLock的unlock()方法会抛出IllegalMonitorStateException对4.如何获取和原创 2020-11-16 16:12:10 · 147 阅读 · 0 评论 -
java线程与并发编程-额外的并发工具
1.说明线程安全集合的两个问题线程安全集合的两个问题是可能抛出ConcurrentModificationException以及糟糕的性能因为在迭代集合的过程中,可能会有其他的线程修改集合,所以在迭代之前获取一个锁是很有必要的如果没有获取锁并且集合遭到修改,那很可能引发ConcurrentModificationException同样地,如果同步集合被多条线程频繁访问,性能就会很糟糕2.给出并发集合的定义并发集合是具有并发性能和高扩展性面向集合的类型,它们位于java.util.concurre原创 2020-11-17 15:14:18 · 138 阅读 · 0 评论