如何优雅的停止一个线程?( 四 )

Producter.mark的值的 , 所以在这种情况下用 volatile是没有办法让生产者停下来的 , 相反如果用 interrupt语句来中断 , 即使生产者处于阻塞状态 , 仍然能够感受到中断信号 , 并做响应处理 。
总结通过上面的介绍我们知道了 , 线程终止的主要两种方式 , 一种是 `interrupt` 一种是`volatile`, 两种类似的地方都是通过标记来实现的 , 不过`interrupt` 是中断信号传递 , 基于系统层次的 , 不受阻塞影响 , 而对于 `volatile`, 我们是利用其可见性而顶一个标记位标量 , 但是当出现阻塞等时无法进行及时的通知 。 在我们平时的开发中 , 我们视情况而定 , 并不是说必须使用 `interrupt`, 在一般情况下都是可以使用 `volatile` 的 , 但是这需要我们精确的掌握其中的场景 。 本文由AnonyStar 发布,可转载但需声明原文出处 。 仰慕「优雅编码的艺术」 坚信熟能生巧 , 努力改变人生欢迎关注微信公账号 :云栖简码 获取更多优质文章更多文章关注笔者博客 :云栖简码


推荐阅读