线程sleep占用资源情况解析

1、假设系统最多可以同时运行1000个线程
2、开启1000个线程后(运行中),如果有线程sleep了,还能不能开启新的线程
3、线程sleep 对cpu 和内存有什么影响

开启1000个线程后(运行中),如果有线程sleep了,还能不能开启新的线程???没太明白你问的什么,如果你是线程池或者什么设定了只能有1000线程,那线程sleep之后只能等待这个线程唤醒之后,执行结束,如果你没有固定只能有1000线程,而是你电脑只能跑1000,你非要在线程睡眠的时候,再开一些线程,搞1001个,1002个,你可以试一下,我没试过

线程sleep之后有锁不会释放锁,其他线程要写执行得等着,sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会。所以不会占用cpu。时间到了会正常返回,线程处于就绪状态,然后参与cpu调度,获取到cpu资源之后就可以运行。

java中线程的sleep操作,只是让线程休眠,这里依旧会保持对对象的锁,而且它的生命周期只是处在阻塞状态,并 不是消亡
所以假设系统最多支持1000个线程的话,这里是 不能够新创建线程的 。线程如果进入sleep,这里是 不消耗CPU资源的,它不需要做运算,
他是个个阻塞状态。

说的不错