rubekid 2020-09-08 09:26 采纳率: 0%
浏览 812

线程sleep占用资源情况解析

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

  • 写回答

3条回答 默认 最新

  • 老衲の少女心 2020-09-08 10:13
    关注

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

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

    评论

报告相同问题?