关于线程同步的问题

关于线程同步的问题

老师,视频教程说,synchronized关键字可以用在语句块中,如:

synchronized(obj){.......}

我想问下,这里的参数obj有什么意义啊,synchronized关键字修饰的一段语句不是让这段代码在执行的时候不被打断就可以了么,传obj这个参数有什么意义么?有点难以理解

正在回答

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

2回答

同学你好,如果在方法内部的线程中存在obj2,线程在执行该方法体时,其他线程不能对obj2进行操作。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

慕布斯37364 2019-06-24 19:36:11

object是监视器要监视的对象.当一个对象被监视器监视的时候,同一时刻只能有一个线程
访问它,其它要访问它的线程必须在等待队列中等待. 

嗯,在我看来,通俗点解释。它就好像是一个小信物(就好比存包的时候,给你一个小牌牌)。有这个小牌牌就能执行。那你先拿着这个小牌牌,你还了这个小牌牌之后,其他人再拿着这个小牌牌去执行。


  • 提问者 哆丶哆 #1
    那请问,synchronized(obj){.......},执行这个方法体时,只有这个方法体可以操作obj对象,那如果这个方法体存在另一个对象obj2,其他线程能否在该线程执行这个方法体的同时,对obj2进行操作呢?
    2019-06-24 20:38:39
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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