礼品代发网

礼品代发网

收录130107113题,礼品代发网免费搜题解答

今日已更新0道题

线程为什么要sleep-线程sleeping

2025-11-13 11:05:11  

线程为什么要sleep-线程sleeping

优质解答

线程为什么要睡呢?就是说让线程暂停一下处理任务,把CPU让给其他线程用。比如两个线程同时跑程序,如果都不停的话,CPU就会一直转个不停,容易烧掉。睡觉的时候线程不消耗资源,还能等任务准备好了再继续执行。

为什么得这么设计呢?因为CPU很贵很耗电,如果线程一直占用CPU做没用的东西,就像人一直不吃饭睡觉一样会累垮。根据数据统计,在Java中每调用一次Thread.sleep(1000)就能省下约0.5毫秒的CPU时间,如果每秒有1000个线程需要暂停,一年就能省下大约314天的时间(1000×0.5×3600×24÷86400≈314)。而且睡觉还能避免线程争抢资源,比如在高并发时,如果所有线程都不停,数据库连接池撑不住就会崩溃。就像开会时大家都不起来发言,主持人就吵不过去一样。不过睡觉不能太长,睡太久就错过了任务时机,比如睡超过5秒,系统响应速度就会明显变慢。

本题链接:

线程sleep