JAvaマルチスレッドテーマ
1.2つのスレッドを与えて、どのように第1のスレッドに12を印刷させて、それから第2のスレッドにAを印刷させて、それからスレッド印刷34 Bは順番に56 Cを後回しにします
コード:
コード:
/**
* Created by hanson on 2019/4/25.
*/
public class ThreadRankPrint {
public static void main(String args[]) {
PrintObject printObject = new PrintObject();
new Thread(() -> {
for(int i=0;i<26;i++){
printObject.printNum();
}
}).start();
new Thread(() -> {
for(int i=0;i<26;i++) {
printObject.printChar();
}
}).start();
}
}
class PrintObject {
private int counter = 0;
private boolean status = false;
public synchronized void printNum() {
if (status) {
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.print(counter * 2 + 1);
System.out.print(counter * 2 + 2);
status = true;
this.notify();
}
public synchronized void printChar() {
if (!status) {
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.print((char)(counter+'A'));
counter ++;
status=false;
this.notify();
}
}