Tag: 上下文切换

Node.js单线程VS Tranditonal webserver线程池

我是node.js的新手 目前我正在阅读由Basarat Ali Syed撰写的 “ Beignning Node.js ”。 以下是摘录自传统Web服务器线程池的缺点: 大多数Web服务器使用线程池这种方法几年前,许多继续使用今天。 但是,这种方法不是没有缺点。 线程之间的内存浪费了。 另外,操作系统需要在线程之间进行上下文切换(即使它们处于空闲状态),这会导致浪费CPU资源。 我不太明白为什么在线程池内的线程之间有上下文切换。 据我所知,一个线程将在任务期间持续。 一旦任务完成,线程将自由地接收下一个任务。 所以我的Q1 :为什么需要上下文切换? 线程之间的上下文切换何时发生? 我的Q2 :为什么node.js不使用多个线程来处理事件队列中的事件? 这不是更有效率,并减less事件的排队时间?