黑马程序员技术交流社区

标题: 关于线程池的疑惑 [打印本页]

作者: 李啸    时间: 2012-5-9 10:35
标题: 关于线程池的疑惑
明明启动了十个线程 为什么运行起来只有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+"圈");
     }
    }
   });
  }
作者: —__    时间: 2012-5-9 11:05
虽然你创建了10个线程,但是线程运行的时候是互相抢CPU的运行权的,当一个线程抢到了,另外的9个线程都就不能运行了,如果你想看到线程全部运行可以采取以下方法:
运行时间长一点 ,或者重复运行代码 运行几秒立刻停止,然后看看每次运行的线程是不是不一样了呢
作者: 李啸    时间: 2012-5-9 11:10
—__ 发表于 2012-5-9 11:05
虽然你创建了10个线程,但是线程运行的时候是互相抢CPU的运行权的,当一个线程抢到了,另外的9个线程都就不 ...

不是的 我所创建的线程池是在缓冲区中创建的 有几次访问就会创建几个线程不会存在抢到抢不到的说法
作者: —__    时间: 2012-5-9 11:11
你完整代码发出来看看吧
作者: 李啸    时间: 2012-5-9 11:18
—__ 发表于 2012-5-9 11:11
你完整代码发出来看看吧

亲 代码就是main方法里面的
作者: 李啸    时间: 2012-5-11 22:24
唉  这个问题至今未被解决  
作者: 李啸    时间: 2012-5-12 10:16
啊  还是没人解决吗    ~~o(>_<)o ~~  老师.........




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2