加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java中的线程作业

发布时间:2020-12-15 02:07:43 所属栏目:Java 来源:网络整理
导读:我想在 Java中同时生成200个线程.我现在正在做的是进入循环并创建200个线程并启动它们.完成这200个后,我想生成另外200个线程,依此类推. 这里的要点是我产生的前200个线程需要在产生下一组之前完成.我尝试了下面的代码,但它不起作用 for(int i=0;i200;i++){ T
我想在 Java中同时生成200个线程.我现在正在做的是进入循环并创建200个线程并启动它们.完成这200个后,我想生成另外200个线程,依此类推.

这里的要点是我产生的前200个线程需要在产生下一组之前完成.我尝试了下面的代码,但它不起作用

for(int i=0;i<200;i++){
    Thread myThread = new Thread(runnableInstance);
    myThread.start();
}
for(int i=0;i<200;i++){
    Thread myThread = new Thread(runnableInstance);
    myThread.start();
}

注意:我故意将for循环放两次,但我想要的效果并不是因为第二个for循环在第一组线程结束执行之前执行.

请指教

解决方法

您应该保留已创建的线程列表.然后,一旦启动了所有这些,就可以遍历列表并在每个列表上执行连接.当join循环结束时,所有线程都将运行完成.

List<Thread> threads = new List<Thread>();
for(int i=0;i<200;i++){
    Thread myThread = new Thread(runnableInstance);
    myThread.start();
    threads.add(myThread);
}
//All threads are running
for(Thread t : threads) {
    t.join();
}
//All threads are done

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读