美文网首页
Java线程之间的通信

Java线程之间的通信

作者: codingBen | 来源:发表于2018-03-16 06:11 被阅读0次

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

    相关文章

      网友评论

          本文标题:Java线程之间的通信

          本文链接:https://www.haomeiwen.com/subject/bcmvxftx.html