栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

node.js是否在内部使用线程/线程池?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

node.js是否在内部使用线程/线程池?

没有用于文件操作的异步API,因此node.js为此使用了线程池。您可以在libuv的代码中看到它。

该池可以运行4个线程:

static uv_thread_t default_threads[4];

阻塞的FS任务通过uv__work_submit发布。例如,以下是读取的实现方式:

int uv_fs_read(uv_loop_t* loop, uv_fs_t* req,    uv_file file,    void* buf,    size_t len,    int64_t off,    uv_fs_cb cb) {  INIT(READ);  req->file = file;  req->buf = buf;  req->len = len;  req->off = off;  POST;}...#define POST  do {          if ((cb) != NULL) {      uv__work_submit((loop), &(req)->work_req, uv__fs_work, uv__fs_done);          return 0;            }           else {        uv__fs_work(&(req)->work_req);               uv__fs_done(&(req)->work_req, 0);            return (req)->result;           }         }           while (0)

如果您想实现自己的线程,可以查看此精彩介绍。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448618.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号