java线程通信方式

按照各种线程通信的形式,大致分为几类

  • 共享变量
  • 等待-通知
  • 管道
  • 信号量
  • 原子操作

共享变量

通过java.util.concurrent下的工具类ReentrantLock、LockSupport来实现。都是基于乐观锁来实现,乐观锁借助于sun.misc.Unsafe来实现,Unsafe背后是cas,具体操作需要jvm来实现。

等待-通知

通过synchronized结合Thread类的wait()和nofity()/nofityAll()来实现,需要借助于对象锁,对象锁是悲观锁。

信号量

Semaphore

管道

PipedInputStream和PipedOutputStream

原子操作

java.util.concurrent.atomic 下的相关工具类,计数时会用到。

 之前写的生产者消费者

https://blog.csdn.net/zlpzlpzyd/article/details/127415931

参照链接

https://www.zhihu.com/question/591753281/answer/2955321005

https://blog.csdn.net/Ascend1977/article/details/130932379

你可能感兴趣的:(java,java,开发语言)