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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李啸 中级黑马   /  2012-5-9 10:35  /  2180 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

明明启动了十个线程 为什么运行起来只有7个线程被启动
ExecutorService threadTools=Executors.newCachedThreadPool();
  for (int i = 0; i <10; i++) {
   
  
  threadTools.execute(new Runnable() {
   @Override
   public void run() {
    for (int j = 0; j <10; j++) {
     System.out.println(Thread.currentThread().getName()+"当前线程运行的地"+j+"圈");
     }
    }
   });
  }

6 个回复

倒序浏览
虽然你创建了10个线程,但是线程运行的时候是互相抢CPU的运行权的,当一个线程抢到了,另外的9个线程都就不能运行了,如果你想看到线程全部运行可以采取以下方法:
运行时间长一点 ,或者重复运行代码 运行几秒立刻停止,然后看看每次运行的线程是不是不一样了呢
回复 使用道具 举报
—__ 发表于 2012-5-9 11:05
虽然你创建了10个线程,但是线程运行的时候是互相抢CPU的运行权的,当一个线程抢到了,另外的9个线程都就不 ...

不是的 我所创建的线程池是在缓冲区中创建的 有几次访问就会创建几个线程不会存在抢到抢不到的说法
回复 使用道具 举报
你完整代码发出来看看吧
回复 使用道具 举报
—__ 发表于 2012-5-9 11:11
你完整代码发出来看看吧

亲 代码就是main方法里面的
回复 使用道具 举报
唉  这个问题至今未被解决  
回复 使用道具 举报
李啸 中级黑马 2012-5-12 10:16:36
7#
啊  还是没人解决吗    ~~o(>_<)o ~~  老师.........
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马