+++ 一、 图一中,为什么a=0时,没有触发if判断?反应不过来? 二、 图二中,为什么最后触发中断,还会有线程执行一次?怎么避免?
(1) if (o == 0)这个操作不是原子性的,你又没有同步。 线程得到0的值为0,然后另一个线程正好改写了o,这样前一个得到的其实是脏数据 (2)你break只是不再创建新的线程了,但是不能让正在运行的线程停下来。 除非你向已经运行的线程发送interrupt,让它们自行退出或者被迫中止
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。