当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
展开全部
可以进入其他非synchronized的方法,synchronized的方法不可以的!
Java中的每个对象都有一个锁(lock)或者叫做监视器(monitor),当访问某个对象的synchronized方法时,表示的将该对象上锁,此时其他任何线程都无法再去访问该synchronized方法了,直到之前的那个线程执行方法完毕后(或者是抛出了异常),才将该对象的锁释放掉,其他线程才有可能再去访问该synchronized方法。
如果一个对象有多个synchronized方法,某一时刻某个线程已经进入到了某个synchronized方法,那么在该方法没有执行完毕前,其他线程是无法访问该对象的任何synchronized方法的。
Java中的每个对象都有一个锁(lock)或者叫做监视器(monitor),当访问某个对象的synchronized方法时,表示的将该对象上锁,此时其他任何线程都无法再去访问该synchronized方法了,直到之前的那个线程执行方法完毕后(或者是抛出了异常),才将该对象的锁释放掉,其他线程才有可能再去访问该synchronized方法。
如果一个对象有多个synchronized方法,某一时刻某个线程已经进入到了某个synchronized方法,那么在该方法没有执行完毕前,其他线程是无法访问该对象的任何synchronized方法的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
访问同一个object的synchronized方法时,哪个线程先执行带有synchronized关键字的方法,哪个线程就持有该方法所属对象的锁Lock,其他对象只能呈等待状态,但是,另一个线程可以以异步的方式调用object对象中的非synchronized方法。
如果一个线程访问一个object的synchronized方法时,其他线程对该object中其他所有synchronized方法的访问将被阻塞,需要等待
如果一个线程访问一个object的synchronized方法时,其他线程对该object中其他所有synchronized方法的访问将被阻塞,需要等待
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果其他方法前加了synchronized关键字,就不能,如果没加synchronized,则能够进去。
如果这个方法内部调用了wait(),则可以进入其他加synchronized的方法。
如果其他方法加了synchronized关键字,并且没有调用wai方法,则不能。
如果这个方法内部调用了wait(),则可以进入其他加synchronized的方法。
如果其他方法加了synchronized关键字,并且没有调用wai方法,则不能。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以,synchronized来放到方法,那么只对方法起作用。对其他的不起作用
海枫科技
海枫科技
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以进入其他非synchronized的方法,synchronized的不可以,因为锁定的对象本身
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询