题目描述
实现-condition
static boolean flag = true;
public static void main(String[] args) {
Lock lock = new ReentrantLock();
Condition letter = lock.newCondition();
Condition num = lock.newCondition();
new Thread(new Runnable() {
@Override
public void run() {
char ch = 'A';
int i = 0;
while (i < 26) {
lock.lock();
try {
if (flag) {
letter.await();
}
System.out.print((char) (ch + i));
i++;
flag = true;
letter.signal();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
lock.unlock();
}
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
int i = 1;
while (i < 53) {
lock.lock();
try {
if (!flag) {
num.await();
}
System.out.print(i + "" + (i + 1));
i += 2;
flag = false;
letter.signal();
} catch (Exception e) {
e.printStackTrace();
} finally {
lock.unlock();
}
}
}
}).start();
}