模板网站会员,怎么做国外游戏下载网站,微信 app 微网站 整合,天津网站建设公司哪家好单线程模式
之所以采用单线程#xff0c;而不是多线程#xff0c;跟历史有关系。原因是不想让浏览器变得太复杂#xff0c;因为多线程需要共享资源、且有可能修改彼此的运行结果#xff0c;对于一种网页脚本语言来说#xff0c;太复杂了。
好处
实现起来比较简单#…单线程模式
之所以采用单线程而不是多线程跟历史有关系。原因是不想让浏览器变得太复杂因为多线程需要共享资源、且有可能修改彼此的运行结果对于一种网页脚本语言来说太复杂了。
好处
实现起来比较简单执行环境相对单纯
坏处
1、 只有一个任务耗时很长后面的任务都必须排队等着会拖延整个程序的执行。 2、 常见的浏览器无响应—假死往往就是因为某一段js代码长时间运行—比如死循环导致整个页面卡在这个地方其他任务无法执行。
同步任务
定义没有被引擎难挂起、在主线程上执行的任务。 前一个任务完成才能执行下一个任务
通俗是按照他们在代码中出现的顺序一次执行任务
异步任务
定义被引擎放在一边不进入主线程、而进入任务队列的任务。 只有引擎任务某个异步任务可以执行了该任务才会进入主线程执行。
通俗在当前任务不被阻塞的情况下执行任务
操作流程串行执行 / 并行执行
任务队列
定义用来存放异步任务的队列。
包括定时器回调、事件处理函数、Promise的异步操作等
事件循环
定义是一种程序结构用于处理任务队列中的任务。js运行时浏览器中存在一个主线程事件循环负责不断的检查任务队列如果任务队列中有任务就将任务取出并执行。
setTimeout()
定义指定某个函数或某段代码在多少浩淼之后执行。
参数 setTimeout(callback, delay, param1, param2, …);
返回 一个整数表示定时器的编号以后可以用来取消这个定时器。
setInterval()
定义: 指定某个任务每隔一段时间就执行一次也就是无限次的定时执行