package com.tij.thread.cancel;
//一个任务在持有一个对象锁时能够调用同一个对象的其它的synchronized方法
public class MultiLock {
public synchronized void f1(int count){
if(count-->0){
System.out.println("f1() calling f2() with count "+count);
f2(count);
}
}
public synchronized void f2(int count){
if (count-->0) {
System.out.println("f2() calling f1() with count "+count);
f1(count);
}
}
public static void main(String[] args) {
final MultiLock multiLock=new MultiLock();
new Thread(){
@Override
public void run() {
multiLock.f1(10);
};
}.start();
}
}
java编程思想笔记-并发之Synchronized嵌套调用
最新推荐文章于 2023-07-06 12:22:56 发布
本文展示了一个Java示例程序,该程序定义了一个名为MultiLock的类,该类中的两个同步方法f1和f2相互调用。通过一个线程启动f1方法,并观察其如何在持有对象锁的情况下调用f2,再反过来调用f1,形成递归调用的模式。
319

被折叠的 条评论
为什么被折叠?



