线程通信
北方散人
这个作者很懒,什么都没留下…
展开
-
线程通信wait、notify、notifyAll
1.何时使用 在多线程环境下,有时候一个线程的执行,依赖于另一个线程的某种状态的改变,这个时候,我们就可以使用wait与notify或者notifyAll 2.wait跟sleep的区别 wait会释放持有的锁,而sleep不会,sleep只会让线程在指定的时间内,不去抢占CPU资源。 3.注意点:wait notify必须放在同步代码快中,且必须拥有当前对象的锁,既不能取得A对象的锁,而调用B对...原创 2019-03-20 01:04:08 · 127 阅读 · 0 评论 -
生产者和消费者
1.生产者消费模型一般包括:生产者、消费者、中间商 2.中间商 3.生产者 4.消费者 5.main函数原创 2019-03-21 00:11:54 · 143 阅读 · 0 评论 -
使用管道流进行线程间的通信
1.管道流进行通信其实就是一个线程取数据,一个线程往里面扔数据。 以内存为媒介,用于线程之间的数据传输 2.主要有面向字节:【PiopedOutputStream.PipedInputStream】 面向字符【PipedReader,PipedWriter】 ...原创 2019-03-22 00:19:38 · 283 阅读 · 0 评论 -
Thread.join()通信及其源码解析
Thread.join通信及其源码浅析线程b去执行修改。只有B运行完成之后,A才能继续操作 使用场景:线程A执行到一半,需要一个数据,这个数据需要线程。 线程A的run方法里面,调用线程B的join方法,这个时候,线程A会等待线程B运行完成之后,再接着运行。 join方法 等待该线程终止。 等待调用join方法的线程结束,再继续执行。如:t.join();//主要用于等待t线程运行结束,若无此句,...原创 2019-03-31 23:31:31 · 198 阅读 · 0 评论 -
ThreadLocal的使用
线程变量,是一个以ThreadLocal对象为键,任意对象为值得存储结构。为每个线程单独存放一份变量副本,也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个线程上的一个值。 只要线程处于活动状态并且TreadLocal实例可以访问,那么每个线程都拥有对其本地线程副本的隐式引用变量一个线程消失后,它的所有副本线程局部实例受垃圾回收(除非其他存在对这些副本的引用) 一般用的比较多的...原创 2019-04-01 00:24:15 · 160 阅读 · 0 评论 -
线程池自定义拒绝策略
1.拒绝策略类 2.main测试主类原创 2019-05-26 16:57:11 · 488 阅读 · 0 评论