我在用在线课程学习Javascript。他们说Javascript的执行是“单线程同步执行”。然后,他们将单线程定义为一次一个命令,一次定义一个同步。
这些术语之间有什么区别吗?
我们是否通常说Javascript是一种同步语言?单线程语言?
发布于 2017-05-29 10:46:00
单线程意味着一次只发生一件事。
同步意味着,如果您需要等待某个东西,那么一切都会停止,直到等待结束。
在JavaScript中,最常见的同步和异步示例是发出HTTP请求。
如果发出同步请求,则通过网络发送HTTP请求,然后一切都停止。鼠标点击被忽略。在暂停时达到零的计时器。在回复回来之前什么都不会发生。
如果您想要异步请求,那么JS引擎将继续进行其他工作。当请求返回,而JS引擎不忙时,它就会被捡起来并处理。
发布于 2017-05-29 15:26:59
我发现了这个,它真的帮助我理解了:
“最后,线程是指我们在计算机的微处理器上同时运行多少个代码块(即线程)。如果你有多个‘核’(就像大多数现代英特尔处理器一样),你可以同时运行多个‘线程’(即每个处理器核心同时处理指令)。”
Javascript引擎不会这样做。使用更多的处理器内核,Javascript不一定会变得更快。
另一方面,同步/异步与如何处理单个线程有关。同步意味着“在做其他事情之前等待我完成”。异步的意思是‘没事的,在我完成的时候继续前进’。Javascript是同步的和单线程的.在发动机内部一次只发生一件事,只有一组指令被发送到计算机的微处理器。“
https://stackoverflow.com/questions/44240367
复制相似问题