Java生产者消费者问题中关于notify()使用位置问题

霜月枫桥 2016-02-01 02:28:03
在生产者消费者问题中,为什么notify在while循环外程序可以正常运行,在循环内却会产生死锁那。
我输出了一下试试,当notify在循环内时,若线程满足循环的条件,那么程序只运行到循环内,this.wait()便停止了。
...全文
191 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小飞侠0070 2016-12-28
  • 打赏
  • 举报
回复
我也发现这个问题了
霜月枫桥 2016-02-27
  • 打赏
  • 举报
回复
引用 1 楼 longtian1213 的回复:
你这么写都放到一个线程里了吧!这不是生产者和消费者的写法!
源代码找不到了,你随便有一个生产者的代码试一下吧
霜月枫桥 2016-02-27
  • 打赏
  • 举报
回复
引用 1 楼 longtian1213 的回复:
你这么写都放到一个线程里了吧!这不是生产者和消费者的写法!
我没放到一个线程中,这是两个线程,当生产者生产满了便wait,然后notify消费者,消费者消费完了,便会wait,然后notify生产者,进行生产,从而避免死锁。当写成第一张图的样子时,程序可以运行。写成第二张图能运行,但是不能在生产满了或消费完了后唤醒另一个进程
S117 2016-02-23
  • 打赏
  • 举报
回复
你这么写都放到一个线程里了吧!这不是生产者和消费者的写法!

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧