就是比如有个大小为100的线程池,但是我现在一下来了10000个线程,咋整?
感谢国家,感谢大家!

解决方案 »

  1.   

    像你的问题。一次来了1000个线程。那肯定是只处理100个。其余的900个处理wait状态,等待执行。等100个当中有一个或多个执行完后,在notify 其余的900进行随机唤醒操作。
      

  2.   

    已经有10000个线程了,  还要池干嘛?
    应该是有100的线程的池, 10000个任务等待处理;
    那当然是这100个线程谁有空谁就去取一个任务来完成, 直到处理完所有任务就wait; 有新的任务时线程又醒来继续执行任务
      

  3.   

    另外, 如果这些任务占用CPU其实不高(大多数时间在等待)的话,  可以考虑线程池中用更多的线程
      

  4.   


    Windows 每个进程最多只允许 2000 个线程,Linux 每个进程最多只允许 1000 个左右,我不知道这 10000 个线程是咋来的?在 Windows 上每个线程需要占用 1MB 左右的内存空间,100000 个线程需要有 10GB 的内存空间,这还只是线程占用的,因此,这问题纯属瞎掰,没有实际意义!