private boolean aBoolean = true;
private void thread() {
final String[] a = {"A1", "A2", "A3", "A4"};
final String[] b = {"B1", "B2", "B3", "B4"};
final Object o = new Object();
new Thread(() -> {
synchronized (o) {
for (int i = 0; i < a.length; i++) {
if (!aBoolean) {
try {
o.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(a[i]);
aBoolean = !aBoolean;
o.notify();
}
}
}).start();
new Thread(() -> {
synchronized (o) {
for (int i = 0; i < b.length; i++) {
try {
if (aBoolean) {
o.wait();
}
System.out.println(b[i]);
aBoolean = !aBoolean;
o.notify();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
Java 两个线程交替执行
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 今天面试阿里被问到一个简单的多线程问题,脑子里第一个闪现的是wait()和notify(),写代码的时候又蹦出些其...
- 引言 java面试中经常会遇到这个问题,如何用两个线程交替打印奇偶数。线程A打印1,线程B打印2,线程A打印3,线...