当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?...
当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
展开
3个回答
展开全部
可以进入其他非synchronized的方法,synchronized的方法不可以的!
Java中的每个对象都有一个锁(lock)或者叫做监视器(monitor),当访问某个对象的synchronized方法时,表示的将该对象上锁,此时其他任何线程都无法再去访问该synchronized方法了,直到之前的那个线程执行方法完毕后(或者是抛出了异常),才将该对象的锁释放掉,其他线程才有可能再去访问该synchronized方法。
如果一个对象有多个synchronized方法,某一时刻某个线程已经进入到了某个synchronized方法,那么在该方法没有执行完毕前,其他线程是无法访问该对象的任何synchronized方法的。
Java中的每个对象都有一个锁(lock)或者叫做监视器(monitor),当访问某个对象的synchronized方法时,表示的将该对象上锁,此时其他任何线程都无法再去访问该synchronized方法了,直到之前的那个线程执行方法完毕后(或者是抛出了异常),才将该对象的锁释放掉,其他线程才有可能再去访问该synchronized方法。
如果一个对象有多个synchronized方法,某一时刻某个线程已经进入到了某个synchronized方法,那么在该方法没有执行完毕前,其他线程是无法访问该对象的任何synchronized方法的。
展开全部
不可以 ,但是在synchronized方法引用了一个全局的变量,synchronized方法
还没有运行完成的期间,在另外的一个方法中就可以修改synchronized方法的这
个变量
例如:A和B 一起去吃饭,在进一个大门,A站在门口不进去,B就不能进去,
但是现在有个专门的老师通道,C老师和B玩得好,C就可以把B带从老师通道进去
还没有运行完成的期间,在另外的一个方法中就可以修改synchronized方法的这
个变量
例如:A和B 一起去吃饭,在进一个大门,A站在门口不进去,B就不能进去,
但是现在有个专门的老师通道,C老师和B玩得好,C就可以把B带从老师通道进去
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该可以吧,只是锁住了这段信息
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询