Java线程之间的通信

2018-03-16  本文已影响0人  codingBen

1.等待/通知机制

wait()和notify() 

wait()和sleep()的不同是wait()是会失去锁,但是sleep()并不会

notify()执行后锁也不会释放

2.生产者/消费者模式的实现

 生产者和消费者模式的实现和等待/通知机制是一样的使用:wait()和notify()

3.方法join的使用

线程join的作用是使所属的线程对对象X正常执行run()方法中的任务,从而使当前线程进行无限期阻塞,等待x执行完之后再执行Z后面的代码

join(num)中的参数num使用用来设定等待时间的。

4.ThreadLocal的使用

变量值一般共享就是采用public static方式,但是所有的线程都使用同一个public staitc变量。

Theadlocal s = new Theadlocal();

s.get() s.set()

InheritableThreadLocal可以在子线程中取得父线程的值。


5.通过管道进行线程间通信:字节流 

管道流和字节流

pipeStream是一种特殊的流,用于在不同线程之间直接传送数据。一个线程把数据输出到管道,另一个从输入管道中读数据。通过使用管道,实现不同线程之间的通信。

上一篇 下一篇

猜你喜欢

热点阅读