#Js篇:單線程模式同步任務異步任務任務隊列事件循環setTimeout() setInterval()

單線程模式

之所以采用單線程,而不是多線程,跟歷史有關系。原因是不想讓瀏覽器變得太復雜,因為多線程需要共享資源、且有可能修改彼此的運行結果,對于一種網頁腳本語言來說,太復雜了。

好處

實現起來比較簡單,執行環境相對單純

壞處

1、 只有一個任務耗時很長,后面的任務都必須排隊等著,會拖延整個程序的執行。
2、 常見的瀏覽器無響應—假死,往往就是因為某一段js代碼長時間運行—比如死循環,導致整個頁面卡在這個地方,其他任務無法執行。

同步任務

定義:沒有被引擎難掛起、在主線程上執行的任務。
前一個任務完成,才能執行下一個任務

通俗:是按照他們在代碼中出現的順序一次執行任務

異步任務

定義:被引擎放在一邊,不進入主線程、而進入任務隊列的任務。
只有引擎任務某個異步任務可以執行了,該任務才會進入主線程執行。

通俗:在當前任務不被阻塞的情況下執行任務

操作流程:串行執行 / 并行執行

任務隊列

定義:用來存放異步任務的隊列。

包括:定時器回調、事件處理函數、Promise的異步操作等

事件循環

定義:是一種程序結構,用于處理任務隊列中的任務。js運行時(瀏覽器)中存在一個主線程,事件循環負責不斷的檢查任務隊列,如果任務隊列中有任務,就將任務取出并執行。

setTimeout()

定義:指定某個函數或某段代碼,在多少浩淼之后執行。

參數: setTimeout(callback, delay, param1, param2, …);

返回: 一個整數,表示定時器的編號,以后可以用來取消這個定時器。

setInterval()

定義: 指定某個任務每隔一段時間就執行一次,也就是無限次的定時執行

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167555.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167555.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167555.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nginx國密ssl測試

文章目錄 文件準備編譯部署nginx申請國密數字證書配置證書并測試 文件準備 下載文件并上傳到服務器,這里使用centos 7.8 本文涉及的程序文件已打包可以直接下載。 點擊下載 下載國密版openssl https://www.gmssl.cn/gmssl/index.jsp 下載穩定版nginx http://n…

訪問者模式 (Visitor Pattern)

定義 訪問者模式(Visitor Pattern)是一種行為型設計模式,用于將算法與其作用于的對象結構分離。這種模式主要用于執行操作或應用過程,這些操作需要在不同類型的對象上執行,同時避免讓這些對象的類變得過于復雜。 關鍵…

【Python 訓練營】N_5 斐波那契數列

題目 輸出斐波那契數列 分析 斐波那契數列(Fibonacci sequence),又稱黃金分割數列,指的是這樣一個數列:0、1、1、2、3、5、8、13、21、34、……。 在數學上,費波那契數列是以遞歸的方法來定義&#xff…

9.9 Windows驅動開發:內核遠程線程實現DLL注入

在筆者上一篇文章《內核RIP劫持實現DLL注入》介紹了通過劫持RIP指針控制程序執行流實現插入DLL的目的,本章將繼續探索全新的注入方式,通過NtCreateThreadEx這個內核函數實現注入DLL的目的,需要注意的是該函數在微軟系統中未被導出使用時需要首…

用XMind2TestCase,測試更輕松

📢專注于分享軟件測試干貨內容,歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!📢交流討論:歡迎加入我們一起學習!📢資源分享:耗時200小時精選的「軟件測試」資…

C++ Qt QByteArray用法介紹

作者:令狐掌門 技術交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/ 文章目錄 一、QByteArray的基本用法1、初始化和賦值2、訪問和修改元素3、 常用方法4、數據轉換二、QByteArray與文件操作三、QByteArray與網絡編程四、QByteArray數據編碼1、Base64 編解…

數據庫-MySQL之數據庫必知必會10-13章

第10章 創建計算字段 拼接字段 使用Concat()函數 執行算術計算 示例:從 Products 表中返回 prod_id、prod_price 和 sale_price。sale_price 是一個包含促銷價格的計算字段。提示:可以乘以 0.9,得到原價的 90%(即 10%的折扣&…

2023.11.24 海豚調度,postgres庫使用

目錄 海豚調度架構dolphinscheduler DAG(Directed Acyclic Graph), 個人自用啟動服務 DS的架構(海豚調度) 海豚調度架構dolphinscheduler 注:需要先開啟zookeeper服務,才能進行以下操作 通過UI進行工作流的配置操作, 配置完成后, 將其提交執行, 此時執行請求會被…

數組基礎知識

數組基礎(不定時更新) 數組基礎 數組基礎 (1)數組是存放在連續內存空間上的相同類型數據的集合。數組可以方便的通過下標索引的方式獲取到下標下對應的數據。數組下標都是從0開始的。數組內存空間的地址是連續的。 (…

【科普知識】什么是步進電機?

德國百格拉公司于1973年發明了五相混合式步進電機及其驅動器,1993年又推出了性能更加優越的三相混合式步進電機。我國在80年代以前,一直是反應式步進電機占統治地位,混合式步進電機是80年代后期才開始發展。 步進電機是一種用電脈沖信號進行…

Verilog基礎:時序調度中的競爭(一)

相關閱讀 Verilog基礎https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 作為一個硬件描述語言,Verilog HDL常常需要使用語句描述并行執行的電路,但其實在仿真器的底層,這些并行執行的語句是有先后順序…

機器學習數據集整理:圖像、表格

前言 如果你對這篇文章感興趣,可以點擊「【訪客必讀 - 指引頁】一文囊括主頁內所有高質量博客」,查看完整博客分類與對應鏈接。 表格數據 Sklearn 提供了 13 個表格型數據,且數據處理接口統一;LIBSVM 提供了 131 個表格型數據&a…

【TypeScript】常見數據結構與算法(二):鏈表

文章目錄 鏈表結構(LinkedList)鏈表以及數組的缺點數組鏈表的優勢 什么是鏈表?封裝鏈表相關方法源碼鏈表常見面試題237-刪除鏈表中的節點206 - 反轉鏈表 數組和鏈表的復雜度對比 鏈表結構(LinkedList) 鏈表以及數組的缺點 鏈表…

AcWing103.電影——離散化

題目 莫斯科正在舉辦一個大型國際會議,有 n n n 個來自不同國家的科學家參會。 每個科學家都只懂得一種語言。 為了方便起見,我們把世界上的所有語言用 1 到 109 之間的整數編號。 在會議結束后,所有的科學家決定一起去看場電影放松一下。…

Interactive Visual Data Analysis

Words&Contents Home | Interactive Visual Data Analysis Book Outline 這本書對視覺、互動和分析方法進行了系統而全面的概述,作為數據可視化方面比較好的讀物; 目錄 Words&Contents Book Outline (一)Introduct…

AIGC 3D即將爆發,混合顯示成為產業數字化的生產力平臺

2023年,大語言模型與生成式AI浪潮席卷全球,以文字和2D圖像生成為代表的AIGC正在全面刷新產業數字化。而容易為市場所忽略的是,3D圖像生成正在成為下一個AIGC風口,AIGC 3D宇宙即將爆發。所謂AIGC 3D宇宙,即由文本生成3D…

VBA_MF系列技術資料1-227

MF系列VBA技術資料 為了讓廣大學員在VBA編程中有切實可行的思路及有效的提高自己的編程技巧,我參考大量的資料,并結合自己的經驗總結了這份MF系列VBA技術綜合資料,而且開放源碼(MF04除外),其中MF01-04屬于定…

安裝compiler version 5

這個compiler version5 在我的資源里面可以免費下載; 另外這個東西還需要安裝,安裝教程在這里:Keil最新版保姆教程(解決缺少V5編譯器問題) - 嗶哩嗶哩 (bilibili.com) 看吧安裝好了year

C語言鏈表使用

目錄 雙鏈表增刪改查鏈表帶功能函數 雙鏈表增刪改查 #include <stdio.h> #include <stdlib.h>// 雙鏈表結點的定義 typedef struct DNode{int data;struct DNode *prev;struct DNode *next; } DNode;// 創建雙鏈表 DNode *createDoublyLinkedList() {int n, i;pri…

【C語言】qsort的秘密

一&#xff0c;本文目標 qsort函數可以對任意類型數據甚至是結構體內部的數據按照你想要的規則排序&#xff0c;它的功能很強大&#xff0c;可是為什么呢&#xff1f; 我將通過模擬實現qsort函數來讓你對這整個過程有一個清晰的深刻的理解。 二&#xff0c;qsort函數原型 v…