Answers
简单举个例子,这时候你有一批任务,但是特点如下:
1. 执行时间长
2. 不关心执行结果
如果来一大批诸如此类的任务,你如果选择多线程(也就是一个任务开启一条线程)。那么CPU最终会因为线程数目过多,而“忙死”于上下文切换里。
由于不关心执行结果,你就可以把任务全部放进队列里,用一个线程池去执行,比如同一时间只执行4个任务,那么你的全局就只有4条线程,上下文切换快,任务也有序地执行完。只是某种程度上效率可能不如多线程的快。
这种不同可以参照下tomcat 或者apache httpd与 nginx或者node的不同。
klesdia
answered 10 years, 2 months ago