微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过Node.js中的工作线程阻止系统调用的解决方案

如何解决通过Node.js中的工作线程阻止系统调用的解决方案

我最近在tanenbaum的《操作系统》一书中了解了用户级线程和内核级线程。由于用户级线程是由库程序包处理的,并且已经与node.js一起工作过,所以我得出结论,node.js使用libuv来处理工作线程,因此使用了用户级线程。

但是我想知道node.js如何处理某些工作线程进行阻塞的系统调用,然后即使某些线程能够运行,内核也会阻塞整个过程的情况。

解决方法

但是我想知道node.js如何处理某些工作线程进行阻塞的系统调用,然后即使某些线程能够运行,内核也会阻塞整个过程的情况。

这不是现代操作系统中发生的情况。仅仅因为进程中的一个线程正在从磁盘读取/写入,操作系统不会阻止整个进程对其他线程执行任何操作。

现代硬件使用DMA(直接内存访问)精确地对磁盘进行读/写操作,从而在从磁盘读取或写入数据块时不必阻塞CPU。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。