/*
两个线程,一个线程打印1-52,另一个打印A-Z,打印顺序为12A34B56C....5152Z.
*/
public class PrintTwo {
public static void main(String[] args) {
Print print = new Print();
IntThread intThread = new IntThread(print);
LetterThread letterThread = new LetterThread(print);
intThread.start();
letterThread.start();
}
}
class IntThread extends Thread {
private Print print;
public IntThread(Print print) {
this.print = print;
}
@Override
public void run() {
print.printInt();
}
}
class LetterThread extends Thread {
private Print print;
public LetterThread(Print print) {
this.print = print;
}
@Override
public void run() {
print.printLetter();
}
}
class Print {
private boolean flag = true;
public synchronized void printInt() {
int i = 1;
while (i < 53) {
if (!flag) {
try {
wait();
flag = true;
} catch (InterruptedException e) {
e.printStackTrace();
}
}else {
System.out.print(i);
i++;
if((i-1)%2==0){
flag = false;
notify();
}
}
}
}
public synchronized void printLetter() {
char i = 'A';
while (i <= 'Z') {
if (flag) {
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}else {
System.out.print(i);
i++;
flag = true;
notify();
}
}
}
}
两个线程,一个线程打印1-52,另一个打印A-Z,打印顺序为12A34B56C....5152Z.
最新推荐文章于 2021-11-28 23:59:09 发布