1.什么是死锁
死锁:是指多个进程在运行过程中因争夺资源而造成的一种僵局。
例如:如果此时有一个线程A,按照先锁a再获得锁b的的顺序获得锁,而在此同时又有另外一个线程B,按照先锁b再锁a的顺序获得锁。
2.产生死锁的原因
a.竞争资源(抢占资源不释放)
b.进程间推进顺序非法(资源不匹配)
3.产生死锁的必要条件
互斥条件、请求和保持条件、不剥夺条件、环路等待条件
生产者和消费者
两个或者更多的进程(线程)共享同一个缓冲区出现生产者和消费者。
生产者:会不断生产资源
消费者:从缓冲区中取走资源