当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

 我来答
来自法海寺文明的栀子花
2011-08-28 · 超过13用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:35.9万
展开全部
一个线程进入一个对象的synchronized方法后,即获得了这个对象的锁,也就是占有了这个对象。
这个对象的其他synchroized方法和方法块,是不能被其他线程所访问的。但是,如果这个对象的非synchroized方法,是可以被其他对象所访问的。
l7722526
2017-11-23 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3793万
展开全部
可以进入其他非synchronized的方法,synchronized的方法不可以的!
Java中的每个对象都有一个锁(lock)或者叫做监视器(monitor),当访问某个对象的synchronized方法时,表示的将该对象上锁,此时其他任何线程都无法再去访问该synchronized方法了,直到之前的那个线程执行方法完毕后(或者是抛出了异常),才将该对象的锁释放掉,其他线程才有可能再去访问该synchronized方法。
如果一个对象有多个synchronized方法,某一时刻某个线程已经进入到了某个synchronized方法,那么在该方法没有执行完毕前,其他线程是无法访问该对象的任何synchronized方法的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
69746831
2017-10-26 · TA获得超过1415个赞
知道大有可为答主
回答量:2038
采纳率:72%
帮助的人:807万
展开全部
访问同一个object的synchronized方法时,哪个线程先执行带有synchronized关键字的方法,哪个线程就持有该方法所属对象的锁Lock,其他对象只能呈等待状态,但是,另一个线程可以以异步的方式调用object对象中的非synchronized方法。
如果一个线程访问一个object的synchronized方法时,其他线程对该object中其他所有synchronized方法的访问将被阻塞,需要等待
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pengokunjia

2017-10-14 · TA获得超过4296个赞
知道大有可为答主
回答量:4629
采纳率:74%
帮助的人:1055万
展开全部
如果其他方法前加了synchronized关键字,就不能,如果没加synchronized,则能够进去。
如果这个方法内部调用了wait(),则可以进入其他加synchronized的方法。
如果其他方法加了synchronized关键字,并且没有调用wai方法,则不能。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
独孤码农
2017-11-07 · TA获得超过538个赞
知道小有建树答主
回答量:376
采纳率:100%
帮助的人:144万
展开全部
可以,synchronized来放到方法,那么只对方法起作用。对其他的不起作用
海枫科技
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chy305
2011-08-29 · TA获得超过125个赞
知道答主
回答量:65
采纳率:0%
帮助的人:63.3万
展开全部
可以进入其他非synchronized的方法,synchronized的不可以,因为锁定的对象本身
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式