A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

题目是:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,我写的很多错,就不贴出来了,请高手写个正确的!最主要的是在主线程循环到子线程循环那备注一下啊

1 个回复

倒序浏览
  1. public class Main{
  2.         public static boolean flag;
  3.         public static void main(String[] args) {
  4.                 T t = new T(true);
  5.                 int counts=0;
  6.                 flag = false;
  7.                 t.start();
  8.                 while(counts++<50){
  9.                         while(!flag){};//flage为真时继续向下执行
  10.                         System.out.println("主线程第"+counts+"次");
  11.                         for(int i=1;i<=100;i++){
  12.                                 System.out.println("主线程:"+i);
  13.                         }
  14.                         t.set();//设置子线程的flag为真,让子线程继续向下执行
  15.                         flag = false;//让主线程在
  16.                 }
  17.         }
  18. }
  19. class T extends Thread{
  20.         Boolean flag = null;
  21.         int counts = 0;
  22.         T(boolean b){
  23.                 flag = b;
  24.         }
  25.         public void set(){
  26.                 flag = !flag;
  27.         }
  28.         @Override
  29.         public void run() {
  30.                 while(counts++<50){
  31.                         while(!flag){}//flag为真时继续向下执行,当主线程中改变此值时。
  32.                         System.out.println("子线程第"+counts+"次");
  33.                         for(int i=1;i<=10;i++){
  34.                                 System.out.println("子线程:"+i);
  35.                         }
  36.                         flag = false;//让子线程在下个while处反复执行
  37.                         Main.flag = true;//让主线程继续向下执行
  38.                 }
  39.         }
  40. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马