使用同步和非同步块执行的程序

时间:2017-11-20 11:17:21

标签: java multithreading synchronization

我有两种方法同步和非同步。两个线程t1访问Synchronized方法,t2访问非同步方法。 T2会等到T1结束并退出同步块吗?这是怎么做到的?

2 个答案:

答案 0 :(得分:1)

在同一对象上同步的所有同步块一次只能在其中执行一个线程。尝试进入同步块的所有其他线程都被阻塞,直到同步块内的线程退出块。 只有当t1和t2试图访问相同对象的相同同步方法时,其他人才必须等到第一个完成它的工作。但是,根据您的问题,这不是情况。见http://www.geeksforgeeks.org/synchronized-in-java/

答案 1 :(得分:1)

同步方法只会影响使用此方法的线程,因此在您的情况下T2不使用该方法而不会等待T1

详细了解Synchronized Methods

  

当一个线程正在为对象执行synchronized方法时,为同一个对象块调用同步方法的所有其他线程