当前位置: 首页 > news >正文

代做网站邀请推广app

代做网站,邀请推广app,杭州正规引流推广公司,网站流量提升一 进程与线程 线程是进程执行的最小单位,进程是系统分配任务的最小单位。 一个进程可执行最少一个线程。线程分为子线程和主线程。 主线程关闭则子线程关闭。 二 浏览器进程 浏览器是多进程多线程应用。 进程包括: 浏览器进程 负责程序交互渲染…

一 进程与线程

线程是进程执行的最小单位,进程是系统分配任务的最小单位。

一个进程可执行最少一个线程。线程分为子线程和主线程。

主线程关闭则子线程关闭。

二  浏览器进程

浏览器是多进程多线程应用。

进程包括:

  • 浏览器进程 负责程序交互
  • 渲染进程 负责执行js等
  • 网络进程 负责网络进程加载

渲染主线程负责执行js、vue,解释css、html等。

一个标签一个渲染进程。

渲染主线程执行最多次。

有线程将任务放到渲染主线程执行队列,渲染主线程执行队列从消息队列中获取任务执行。

同一类型任务在同一队列中。

消息队列包括:

  1. 微队列 执行优先级最高
  2. 交互队列 执行优先级中
  3. 延时队列 执行优先级低 执行回调

三 js异步理解

js为单进程语言。渲染主线程中执行js。

使用同步则可能导致渲染主进程堵塞。

渲染主线程执行队列其他任务无法执行。

浏览器采用异步方法可避免堵塞。

具体方法:

  1. 任务执行时,主线程将任务交给其他线程执行,主线程继续执行后续代码。
  2. 任务中回调函数,包装为任务,加入到延时队列中,待主进程执行。

以上方法最大限度保证单进程的流畅运行。

"主线程将任务交给其他线程执行"可以解释为,执行代码时,有线程将不同任务放到不同队列,根据队列执行优先级,主线程执行完全局任务后,获取任务执行。

交互事件任务进入交互队列。

Promise.resolve().then(function(){}) 将任务放入微队列。

三 js事件循环

渲染主线程循环执行,各个队列的任务,事件循环又叫消息循环。

类似于后端消息队列,有守护线程监听队列,其他线程执行对应数据,监听到有新数据就执行。

浏览器中开始死循环,执行消息队列中的任务,其他线程将任务插入队尾。

同类型的任务必须在同一队列,不同的任务应属于不同队列。

不同队列执行的优先级不同,微队列必须再存且执行优先级最高,其他队列优先级由浏览器自行决定。

四 js定时器是否精准

不精准

  1. 硬件没有原子钟
  2. 操作系统计时函数偏差,js计时执行操作系统函数
  3. 计时器实现时嵌套层级超过5层,则带有4毫秒时间差
  4. 受渲染主线程事件循环影响,计时器的回调在延时队列中,只能在渲染主线程空闲时运行,因此有偏差

原子钟为一个硬件设备,目前有芯片级原子钟。

国产芯片级微型原子钟:多领域应用,市场前景广阔!-电子发烧友网

五 示例

例:

const btn = document.getElementById("btn")function clickf(event){setTimeout(function(){console.log("setTimeout1")},0) Promise.resolve().then(function(){console.log("Promise1");})}btn.addEventListener('click', clickf(event));setTimeout(function(){btn.click(); },0)  Promise.resolve().then(function(){console.log("Promise2");})function sleep(times){const date = Date.now();let currentDate = null;do {currentDate = Date.now();} while (currentDate - date < times);}function showaf(){let a=1console.log(a)}function showa(func){if (typeof func === 'function') {func(); // 执行回调函数}}function settimeout1(){console.log("setTimeout2")Promise.resolve().then(function(){console.log("Promise3");})console.log("setTimeout3") }setTimeout(settimeout1,0) showa(showaf)sleep(1000)let b=2console.log(b) 

输出结果

调用顺序如下:

先是全局代码执行,依次推入延时队列任务1、微队列任务1、延时队列任务2。

根据推入顺序和队列的优先顺序,依次执行微队列任务1,延时队列任务1,延时队列任务2。

之后类推。

参考:

事件循环那点事_计算机硬件没有原子钟怎么理解-CSDN博客

 

http://www.shuangfujiaoyu.com/news/35985.html

相关文章:

  • 做一家影视网站赚钱吗十大外贸电商平台
  • 建设银行的官方网站高铁纪念币销售培训
  • 做网站和优化共多少钱?推广自己的产品
  • 网站制作职责电商推广
  • 为什么做营销型网站怎样做产品推广
  • 网站建设价格怎么算电商关键词seo排名
  • 一站式做网站开发百度推广托管
  • 小程序链接wordpress郑州网站seo
  • 济南传承网站建设李聪什么是全网营销推广
  • 无锡网站建设 微信百度最容易收录的网站
  • 监控企业网站模板企业培训课程清单
  • 乒乓球网站建设目标百度关键词如何优化
  • 公司建网站公司app排名优化公司
  • 九江建企业网站海外推广解决方案
  • 网站建设步骤 文档谷歌google play官网
  • 外贸建站服务网络营销外包推广
  • 邢台网站建设联系电话广州seo优化
  • 什么网站做b2b免费百度网站收录查询
  • wordpress打赏赞插件北京知名seo公司精准互联
  • wordpress粘贴媒体库什么是搜索引擎优化的核心
  • 太原最新疫情最新消息北京seo关键词排名
  • 怎么查看网站备案软文网官网
  • 开个网站做英语培训软文兼职
  • 凡科网做网站靠谱吗南宁网站建设网站推广
  • 建设网站需要做什么手机app推广平台
  • 襄城县城乡建设管理局网站人大常委会委员长
  • 岳阳优化营商环境站群优化公司
  • 这种资源网站怎么做才赚钱百度推广登录平台
  • 知名的家居行业网站制作广告优化师是做什么的
  • 霸州做网站的宁波seo网络推广产品服务