方式一:Lock+Condition+while
public class Test {
public static void main(String[] args) {
Data data = new Data();
new Thread(() -> {
for (int i = 0; i <= 5; i++) {
data.printOs();
}
}, "A").start();
new Thread(() -> {
for (int i = 0; i < 5; i++) {
data.printJs();
}
}, "B").start();
}
static class Data{
// 使用公平锁
private final ReentrantLock lock = new ReentrantLock(true);
// lock 监视器
private final Condition condition = lock.newCondition();
// 需要打印的数
private int number = 0;
// 打印偶数
public void printOs(){
lock.lock();
try {
while (number %