ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
http://www.uedsc.com/libuv-threads.html#title-0 # Libuv中文文档之线程 等等, 我们为什么会提到线程? 事件循环不应该本身就可以应对高并发网络编程么? 不一定, 线程仍然可以在 CPU 处理任务时来执行一些计算量相对较小的子任务, 即使在编程多线程程序中你必须编写大量同步原语, 但它们在大多时候还是可以派上大用场的. 线程通常在 libuv 内部使用, 用于模拟系统调用的异步特性(原文: Threads are used internally to fake the asynchronous nature of all the system calls). libuv 同样可以利用线程让你异步完成一项本可能阻塞的任务, 通常是创建子线程, 在子线程完成任务后获取其结果. 目前存在两个主流的线程库, Windows 线程库实现和[pthreads](http://man7.org/linux/man-pages/man7/pthreads.7.html). libuv 的线程库 API 与 pthread API 相似, 因此两者具有相同的语义. 值得注意的是, libuv 中的线程库是自包含的. 而其他特性都直接依赖事件循环或者回调. 事件循环和回调中的基本原则在线程中是完全不受限制的. 线程会在必要的时候被阻塞, 信号错误直接通过返回值来确定, 正如例子所示*first example*, 线程中并不需要运行事件循环. libuv 的线程 API 也非常有限, 因为不同平台上线程库的语义和语法也不同, API 功能的完善程度也不尽相同.