【发布时间】:2017-03-14 17:07:36
【问题描述】:
难道只是两个同步的方法不能同时运行吗?
例如,有人编写了 2 个 Java 类。
public class A {
public synchronized void a1(){
//do something }
public void a2(){
//do something }
public synchronized int a3(){
int var = 0;
//do something changing var
return var; } }
public class B {
public void b1(){
//do something
}
public synchronized int b2(){
int var = 0;
//do something changing var
return var;
}
public void b3(){
//do something
}
}
使用main方法,
public static void main(String[] args){
A firstA = new A();
A secondA = new A();
B firstB = newB();
//create some threads that perform operations on firstA, secondA and first B and start them
}
假设它们并行运行并在创建的对象上调用方法,并假设其他机制当前没有阻止这些方法运行。
在我给出的示例中的方法中,如果由 2 个不同的线程同时调用,是否有任何方法不能并发运行?
通过同时运行我的意思是,它们将被排序,以便一个将在另一个开始之前完成。
【问题讨论】:
标签: java concurrency synchronized