开发者社区> 问答> 正文

java-多线程-两个问题

image.png image.png

+++ 一、 图一中,为什么a=0时,没有触发if判断?反应不过来? 二、 图二中,为什么最后触发中断,还会有线程执行一次?怎么避免?

展开
收起
海边一只船 2020-05-27 16:22:27 859 0
1 条回答
写回答
取消 提交回答
  • (1) if (o == 0)这个操作不是原子性的,你又没有同步。 线程得到0的值为0,然后另一个线程正好改写了o,这样前一个得到的其实是脏数据 (2)你break只是不再创建新的线程了,但是不能让正在运行的线程停下来。 除非你向已经运行的线程发送interrupt,让它们自行退出或者被迫中止

    2020-05-27 17:38:34
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载