node.js 的c++ 扩展部份代码是异步执行的么?如果不是,如何创建自定义的异步代码。 比如,用户可选择该部份代码是同步执行,还是异步。
6 回复
可异步可同步。google关键词node.js extension c++就能找不到不少介绍
https://www.cloudkick.com/blog/2010/aug/23/writing-nodejs-native-extensions/
这篇是我看过的不错的入门介绍,里面有一段Hello World with Asynchronous IO
,应该是楼主要找的。
我的理解:异步I/O就是靠epoll/kqueue(*nix)或IOCP(windows),本质是系统内核级别的线程池,异步计算也是要靠多线程,libuv内部就有一个线程池,你可以将任务扔给这些线程去做,总之异步是离不了多线程的,而node.js的所谓单线程仅指执行javascript的线程,底层还有其它线程的配合。不知道对不对?
底层应该没有其它线程配合吧,它本身是事件驱动和单进程的上下文,并发的越多,事件注册的越多,当并发到一定数量nodejs就会挂,说明单进程满了,没法再注册回调事件了;当然,一般的小应用不会有什么问题的,大的话我计划做nodejs链,还没想好,大的思路是做多个node服务器串起来,不知行不行~