使用可重入锁实现三个线程的同步可以通过以下步骤:
下面是一个示例代码:
import java.util.concurrent.locks.ReentrantLock;
public class SyncExample {
private static ReentrantLock lock = new ReentrantLock();
public static void main(String[] args) {
Thread thread1 = new Thread(new Worker());
Thread thread2 = new Thread(new Worker());
Thread thread3 = new Thread(new Worker());
thread1.start();
thread2.start();
thread3.start();
}
static class Worker implements Runnable {
@Override
public void run() {
try {
lock.lock(); // 获取锁
// 执行需要同步的操作
System.out.println("线程" + Thread.currentThread().getId() + "正在执行操作");
// 模拟操作耗时
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
lock.unlock(); // 释放锁
}
}
}
}
在上述示例中,通过创建一个ReentrantLock对象作为锁,然后在每个线程的run()方法中使用lock()方法获取锁,执行需要同步的操作,最后使用unlock()方法释放锁。
这样,三个线程就可以按照顺序依次执行操作,实现了同步。
腾讯云相关产品和产品介绍链接地址:
小程序·云开发官方直播课(数据库方向)
云+社区技术沙龙[第17期]
DB-TALK 技术分享会
企业创新在线学堂
云+社区技术沙龙[第1期]
云+社区沙龙online [国产数据库]
云+社区技术沙龙[第25期]
小程序·云开发官方直播课(数据库方向)
云+社区技术沙龙[第7期]
Techo Day
领取专属 10元无门槛券
手把手带您无忧上云