|
|
1
1
不,操作系统只会将等待再次运行并继续运行的线程出列。
从等待线程中退出并恢复它对于一个线程来说可能很便宜,但是当您拥有数千个线程时,这并不便宜。别忘了,操作系统必须计算要恢复的线程(根据优先级)、恢复的位置(根据可用的CPU和关联性)以及CPU本身可能必须将线程使用的内存加载到缓存线中,这是一个真正的比特。 更不用说,进入睡眠状态的线程必须将其数据从缓存线刷新到RAM中,这是一个非常昂贵的操作(缓存线之所以存在是因为一个很大的原因)。 是的,数千个线程消耗的内存可以占用大量的内存,从而减慢整个系统的运行速度。 现在,它不像HTTP服务器在只使用线程和阻塞IO的情况下不能很好地运行,但由于现在使用异步操作(使用预购、异步/等待、回调)非常容易,因此我们只希望异步IO用于实际需要速度的服务器。 |
|
|
Yomal · 在java中,如何知道线程池的任务何时结束 8 年前 |
|
|
Pissu Pusa · 实现非阻塞线程安全的单例日志记录类[关闭] 8 年前 |
|
|
duy · 在Spring 4中运行并行线程的优雅方式 9 年前 |
|
|
Roger Johansson · Golang阻塞和非阻塞 10 年前 |
|
|
latefreak · Python+Tornado用于会计软件 11 年前 |
|
|
canni · 如何将此代码转换为非阻塞和无锁代码? 12 年前 |
|
|
Mil0R3 · 回调未在Node.js中异步执行 12 年前 |