繁体   English   中英

浏览器仍然是单线程吗?

[英]Are browsers still single-thread?

我听了Crockford关于Javascript(2006)的一次老演讲,他在谈论模型

Flow  -> Paint
  ^        | 
  |        v
Script <- Event

(涉及Flow,paint,event,script ...的循环),说“因为所有浏览器都是单线程的”。

所以,我的问题是,它们仍然是单线程的吗?

对于那些可能知道的人来说,这些视频讲座在所教授的内容方面是否仍然有意义?

就JavaScript而言,您可以运行。 这通常不是问题,因为您打算在JavaScript中执行的所有可能花费一毫秒以上的时间都可以表示为“异步”操作(例如,AJAX请求,动画过渡等)。 这意味着您的所有代码要做的就是开始操作,并注册可能的回调以使其完成。

对于拥有“ Web Worker”有意义的情况,很少有例外,但是我从未真正看到过使用它们的情况。

从技术上讲,是的,它们仍然都在运行单线程,以处理在前端生成页面和操作的问题。 有多种方法可以使它看起来像不是,并且可以像使用html5中引入的Web worker一样运行伪多线程那样独立运行javascript进程。 伪我的意思是说,它的工作原理与大多数多线程进程一样,它在时钟中断之间切换得如此之快,似乎就像是多线程一样。 有关网络工作者的更多信息, 请访问http://www.w3schools.com/html/html5_webworkers.asp以及Google。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM