Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJS中多线程和异步的区别是什么_Node.js_Multithreading_Asynchronous - Fatal编程技术网

Node.js NodeJS中多线程和异步的区别是什么

Node.js NodeJS中多线程和异步的区别是什么,node.js,multithreading,asynchronous,Node.js,Multithreading,Asynchronous,NodeJs在最新更新中添加多线程功能 我想通过简单的例子了解多线程和异步之间的区别是什么?在哪些情况下,我们应该使用多线程而不是异步线程?首先要了解的是,计算机的不同部分以不同的速度工作。 磁盘、网络等 所以,如果您注意到异步代码似乎只处理网络或大量文件,我们就称之为io 好的,酷 现在让我们考虑一下,您的代码正在运行,您需要读取一个文件。在cpu时间内。cpu说这是“1000年”。嘿,当数据可用时,请告诉我。伊玛去做些别的事 然后磁盘回来了,就像我得到了你想要的数据。Cpu怎么样?数据哦,我

NodeJs在最新更新中添加多线程功能


我想通过简单的例子了解多线程和异步之间的区别是什么?在哪些情况下,我们应该使用多线程而不是异步线程?

首先要了解的是,计算机的不同部分以不同的速度工作。 磁盘、网络等

所以,如果您注意到异步代码似乎只处理网络或大量文件,我们就称之为io

好的,酷

现在让我们考虑一下,您的代码正在运行,您需要读取一个文件。在cpu时间内。cpu说这是“1000年”。嘿,当数据可用时,请告诉我。伊玛去做些别的事

然后磁盘回来了,就像我得到了你想要的数据。Cpu怎么样?数据哦,我一直在“等待”的东西

您可以看到这是如何提高效率的

现在,如果您没有获得数据,该怎么办。如果你的cpu需要做不止一件事怎么办

接下来,早上你可以一边倒果汁一边做三明治。很难做到两者都对吗

但是你可以在等待鸡蛋煮熟的时候倒果汁

线程。。。 线是为了得到更多的手。我需要做更多的工作,比如缩小图像的大小,我等不及要缩小图像了。我需要主动收缩图像,但我需要回应其他人,我需要收缩多个图像,我不能一次只收缩一个

现在你明白了,让我来解释一下

异步代码创建一个只等待io的哑线程,如磁盘或网络。它仍然是一个线程,但代码可以很好地为您处理它。它为你解决了一大堆复杂的工作。您只需编写wait和async

通常,你必须管理更多的线程。 这样想吧

从磁盘读取,从网络读取。。它们是相当明显的东西,您可以确保围绕它们创建一个API。 但是cpu的工作,有无限的事情一个cpu可以做。线程通常需要更多的手工工作

最后,线程只能做一件事。用一只手倒橙汁和黄油。 硬对吧?可能需要线程,额外的手

现在煮鸡蛋,用一只手切一些西瓜。 你可以看到你如何等待一些事情完成,然后去做其他事情


去。。你现在是个男人了

您无法比较多线程和异步函数。这就像比较苹果和梨子。这是一个无用的评论