简介
有时候 C++ 插件会执行非常耗时的任务,为了避免阻塞 Node.js 的事件循环,我们应该异步的运行耗时的任务。
对于 C++ 写的 Node.js 插件,有两种方式完成耗时的异步任务:
- 依赖 Node.js 的异步能力,Node.js 会起多个线程,其中一个主线程运行事件循环,其它线程为工作线程,来执行耗时任务。
- 在 C++ 里自己起一个线程运行耗时任务。
一般的异步任务可以用第一种方式完成,但是 Node.js 起的工作线程有限,且还需要运行其它任务,如果需要开更多的线程可以使用第二种方式。