目 录:
面试的过程中,多个线程交替打印是经常被要求手写的。借用本文列出几种常用的解题方法。
方法一:锁实现【推荐】
times:保证每个线程的打印次数;
state:保证每个线程之间的交替打印;
lock:保证每次只有一个线程能够获取到资源。
public class PrintABCUsingLock {
private int times; // 控制打印次数
private int state; // 当前状态值:保证三个线程之间交替打印
private Lock lock = new ReentrantLock(); // 保证每次只有一个线程能够拿到资源
public PrintABCUsingLock(int times){
this.times = times;
}
public void printA(){
print("A", 0);
}