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

代做网站站长工具综合查询ip

代做网站,站长工具综合查询ip,施工合同简单版,网站运营怎么做一 进程与线程 线程是进程执行的最小单位,进程是系统分配任务的最小单位。 一个进程可执行最少一个线程。线程分为子线程和主线程。 主线程关闭则子线程关闭。 二 浏览器进程 浏览器是多进程多线程应用。 进程包括: 浏览器进程 负责程序交互渲染…

一 进程与线程

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

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

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

二  浏览器进程

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

进程包括:

  • 浏览器进程 负责程序交互
  • 渲染进程 负责执行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.khdw.cn/news/68759.html

相关文章:

  • 做网站的费用的会计分录微信公众号软文怎么写
  • 搭建网站服务器多少钱爱站网关键词查询工具
  • 丽水做网站seo实战培训班
  • 南宁seo网站推广服务搜索引擎广告形式有
  • 南京做企业网站手机百度账号申请注册
  • 南京做网站具体需要多少钱营销的概念是什么
  • win10记事本怎么做网站网络游戏推广员
  • 政府网站建设功能360优化大师最新版的功能
  • 个人备案网站可以做产品推广莆田百度快照优化
  • 怎么申请 免费网站win7优化大师好不好
  • 有没有专门做ppt的网站论坛推广
  • 做家具商城网站江门网站定制多少钱
  • 临沂企业网站网站注册页面
  • 科讯cms 网站地图阿里云域名注册入口
  • 如何去掉链接wordpressseopeixun com cn
  • 网站统计系统 怎么做爱站工具包手机版
  • 软件工程项目开发的步骤seo优化关键词排名
  • 网站建设需要考虑的问题百度广告收费表
  • 网站建设工作量评估百度网站是什么
  • 哪个网站是免费建站北京营销网站制作
  • 徐汇区网站建设网络销售好做吗
  • 做美食没有广告的网站淘宝关键词搜索
  • 菜谱网站 源码怎么在百度上发布广告
  • 做外贸建网站需要多少钱aso如何优化
  • 嘉兴企业网站搜索引擎优化seo课程总结
  • 可信网站认证必须做吧广东网站优化公司
  • 医院网站建设模板下载深圳网站优化平台
  • wordpress easy smtp桂平seo快速优化软件
  • 品牌建设题目优化设计四年级上册数学答案
  • 广州白云做网站的公司考研培训班集训营