在论坛上看到这样一个题目:
MyClass中有4个方法:func1()/func2()/func3()/func4,有多个线程要同时访问这4个方法,要求如下:
1. func1()和func2()不能同时执行
2.func3()和func4()不能同时执行
3.func1()/func2()其中的一个与func3()/func4()其中的一个能同时执行
自己也写了下不知道自己理解的对不对,所以想听下大家的意见,是怎么理解这个题的要求的(最好用代码说明呵呵!可以参考一下!谢谢!)
MyClass中有4个方法:func1()/func2()/func3()/func4,有多个线程要同时访问这4个方法,要求如下:
1. func1()和func2()不能同时执行
2.func3()和func4()不能同时执行
3.func1()/func2()其中的一个与func3()/func4()其中的一个能同时执行
自己也写了下不知道自己理解的对不对,所以想听下大家的意见,是怎么理解这个题的要求的(最好用代码说明呵呵!可以参考一下!谢谢!)
func3()和func4()持有同一object o2的锁(func3()和func4()不能同时访问);代码如下:
public class LockTest{
private final Object o1;
private final Object o2;public void func1(){
syncronized(o1){
//some code here
}
}public void func2(){
syncronized(o1){
//some code here
}
}public void func3(){
syncronized(o2){
//some code here
}
}public void func4(){
syncronized(o2){
//some code here
}
}}