为了回忆一下J2SE中的线程互斥与同步问题,所以今天就写个生产者与消费者问题。这个程序大部分时间的结果都基本正确,但某些时候会造成死锁。百思不得其解,将代码贴上,方便以后有更深的体会时再进行修改。也方便各位同学借鉴与指正。
代码如下:
and result:
result 1:
生产者0生产一个产品
生产者1生产一个产品
消费0消费一个产品
消费1消费一个产品
生产者2生产一个产品
生产者3生产一个产品
消费2消费一个产品
消费3消费一个产品
result2:
生产者0生产一个产品
消费1消费一个产品
消费者0被挂起
生产者1生产一个产品
消费者0被唤醒
消费0消费一个产品
消费者2被挂起
消费者3被挂起
生产者2生产一个产品
消费者2被唤醒
消费2消费一个产品
生产者3生产一个产品
消费者3被唤醒
消费3消费一个产品