@chenbinghua
2019-03-02T06:45:18.000000Z
字数 449
阅读 901
java基础笔记
生产者生产数据到缓冲区中,消费者从缓冲区中取数据。
如果缓冲区已经满了,则生产者线程阻塞;
如果缓冲区为空,那么消费者线程阻塞。
生产者和消费者模式中可以有多个生产者,多个消费者,共享资源可以保存多条数据。
为了简化,假定只有一个生产者,一个消费者,共享资源只保存一条数据。
代码实现参考https://www.cnblogs.com/fankongkong/p/7339848.html
1.方式一:synchronized、wait和notify 实现线程通信
2.方式二:lock和condition的await、signalAll
3.方式三:BlockingQueue
避免死锁法则:当多个线程要访问共享的资源A,B,C时,保证每一个线程都按照相同的顺序去访问他们,比如都先访问A,接着B,最后C.
线程休眠sleep()
联合线程
后台线程
线程优先级
线程礼让