第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 子线程循环10次 接着主线程循环5次 接着又回到子线程循环10次 接着再回到主线程又

子线程循环10次 接着主线程循环5次 接着又回到子线程循环10次 接着再回到主线程又

时间:2022-12-11 01:29:58

相关推荐

子线程循环10次 接着主线程循环5次 接着又回到子线程循环10次 接着再回到主线程又

public class ThreadTest {/*** * 子线程循环10次,接着主线程循环5次,接着又回到子线程循环10次,接着再回到主线程又循环5次,如此循环50次,请写出程序。* * @param args*/public static void main(String[] args) {new ThreadTest().init();}public void init() {final Business business = new Business();new Thread(new Runnable() {public void run() {for (int i = 0; i < 50; i++) {business.SubThread(i);}}}).start();for (int i = 0; i < 50; i++) {business.MainThread(i);}}private class Business {boolean bShouldSub = true;// 这里相当于定义了控制该谁执行的一个信号灯public synchronized void MainThread(int i) {if (bShouldSub)try {this.wait();} catch (InterruptedException e) {e.printStackTrace();}for (int j = 0; j < 5; j++) {System.out.println(Thread.currentThread().getName() + ":i=" + i+ ",j=" + j);}bShouldSub = true;this.notify();}public synchronized void SubThread(int i) {if (!bShouldSub)try {this.wait();} catch (InterruptedException e) {e.printStackTrace();}for (int j = 0; j < 10; j++) {System.out.println(Thread.currentThread().getName() + ":i=" + i+ ",j=" + j);}bShouldSub = false;this.notify();}}}

子线程循环10次 接着主线程循环5次 接着又回到子线程循环10次 接着再回到主线程又循环5次 如此循环50次 请写出程序。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。