所以如果在编程中引发调度的切换开销是很大的,我们应该尽量避免。怎么避免呢?答案就是异步编程,在node.js里面,我们可以使用大量callback区域处理业务逻辑。当使用callback以后,代码可能会变成这样一种三角形,因为每一个组织方式,它后面返回值都要带callback调用,都会缩进去一层。这样业务逻辑非常难以维护。 其次是即便我使用了异步编程,但可能还是不小心在现实里面使用了一段阻塞代码,下图是NGINX官网所提供的图片,虽然我自己去切换不同的请求处理,但是中间可能还是不小心调用了操作系统的一个阻塞方法。
为了解决这个问题,NGINX虽然是一个号称纯异步事件驱动的模型,但是它最近也引入了线程池去处理这种可能阻塞现实的情况。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。