关于线程同步代码被打断的情况

关于线程同步代码被打断的情况

http://img1.sycdn.imooc.com//climg/5a66d1f70001b73705020578.jpg

http://img1.sycdn.imooc.com//climg/5a66d205000142f505330435.jpg

http://img1.sycdn.imooc.com//climg/5a66d21b0001cdbb08880692.jpg

这样看结果比较直观,用synchronized修饰并且提高了优先级,并不能阻止它被打断。。。

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

set()方法和add()方法,一个是同步的,一个是不同步的。当一个线程访问同步的代码,另一个线程访问其他的同步代码块时才会被阻塞,等待之前的线程释放资源。所以把add()方法也加上synchronized,就会发现可以执行完一个方法再去执行另一个方法了。

synchronized不是万能的,不是所有情况都适用。并不是语法没报错,思路就没有问题,还需要具体问题具体分析。

祝学习愉快!


  • 大佬金 提问者 #1
    非常感谢!
    2018-01-23 15:30:41
  • 大佬金 提问者 #2
    线程释放资源是指线程结束么?
    2018-01-23 15:31:30
  • 好帮手慕珊 回复 提问者 大佬金 #3
    确切说就是线程把同步的代码执行完了,然后资源就释放了
    2018-01-23 15:37:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师