开发者社区> 问答> 正文

关于Java的线程的stop方法为什么不推荐使用

反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。

网上查到资源是这么说的,那么什么叫“对象处于一种不连贯状态”,那么其他线程能在那种状态下检查和修改它们这句又怎么理解?

展开
收起
游客bnlxddh3fwntw 2020-04-23 21:00:07 705 0
1 条回答
写回答
取消 提交回答
  • 假如一个线程正在执行:synchronized void { x = 3; y = 4;} 由于方法是同步的,多个线程访问时总能保证x,y被同时赋值,而如果一个线程正在执行到x = 3;时,被调用了 stop()方法,即使在同步块中,它也干脆地stop了,这样就产生了不完整的残废数据。而多线程编程中最最基础的条件要保证数据的完整性

    2020-04-23 21:00:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
多IO线程优化版 立即下载