摘要:眾所周知,為了避免復(fù)雜,被設(shè)計(jì)成了單線程。任務(wù)單線程意味著所有任務(wù)都需要按順序執(zhí)行,如果某個(gè)任務(wù)執(zhí)行非常耗時(shí),線程就會(huì)被阻斷,后面的任務(wù)需要等上一個(gè)任務(wù)執(zhí)行完畢才會(huì)進(jìn)行。那么問題來了,執(zhí)行異步任務(wù)后會(huì)發(fā)生什么
眾所周知,JavaScript 為了避免復(fù)雜,被設(shè)計(jì)成了單線程。
?? 任務(wù)單線程意味著所有任務(wù)都需要按順序執(zhí)行,如果某個(gè)任務(wù)執(zhí)行非常耗時(shí),線程就會(huì)被阻斷,后面的任務(wù)需要等上一個(gè)任務(wù)執(zhí)行完畢才會(huì)進(jìn)行。而大多數(shù)非常耗時(shí)的任務(wù)是網(wǎng)絡(luò)請(qǐng)求,CPU 是閑著的,所以為了資源的充分運(yùn)用,便有了異步的概念。
異步便是把這些非常耗時(shí)的任務(wù)放到一邊,其他任務(wù)先進(jìn)行,等處理完其它不需要等待的任務(wù)再回頭來計(jì)算剛剛被放一邊的任務(wù)。這樣就不會(huì)阻斷線程啦。
就像上面講述的,后面的任務(wù)需要等上一個(gè)任務(wù)執(zhí)行完畢才會(huì)進(jìn)行,叫同步任務(wù);把這些非常耗時(shí)的任務(wù)放到一邊,其他任務(wù)先進(jìn)行,叫異步任務(wù)。
那么問題來了,執(zhí)行異步任務(wù)后會(huì)發(fā)生什么?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/100453.html
摘要:將元素作為對(duì)象的鍵,默認(rèn)鍵對(duì)應(yīng)的值為如果對(duì)象中沒有這個(gè)鍵,則將這個(gè)元素放入結(jié)果數(shù)組中去。 前言 數(shù)組去重在日常開發(fā)中的使用頻率還是較高的,也是網(wǎng)上隨便一抓一大把的話題,所以,我寫這篇文章目的在于歸納和總結(jié),既然很多人都在提的數(shù)組去重,自己到底了解多少呢。又或者是如果自己在開發(fā)中遇到了去重的需求,自己能想到更好的解決方案嗎。 這次我們來理一理怎么做數(shù)組去重才能做得最合適,既要考慮兼容性,...
摘要:常見應(yīng)用則是為了完成一些更新應(yīng)用程序狀態(tài)的較小的任務(wù),如處理的回調(diào)和的修改,以便讓這些任務(wù)在瀏覽器重新渲染之前執(zhí)行。常見應(yīng)用執(zhí)行順序的實(shí)現(xiàn)需要至少一個(gè)和至少一個(gè)。 簡(jiǎn)介 我們?cè)谏弦黄?《淺析 JS 中的EventLoop 事件循環(huán)》 中提到一個(gè) Event Queue,其實(shí)在事件循環(huán)中 queue 一共有兩種,還有一種叫 Job Queue 其中 Event Queue 在 HTML...
摘要:宏任務(wù)需要多次事件循環(huán)才能執(zhí)行完??偨Y(jié)事件循環(huán)是和事件調(diào)用機(jī)制的核心,保證了頁面可以有序無阻塞的進(jìn)行。事件循環(huán)的主要邏輯是先執(zhí)行調(diào)用棧,直到清空調(diào)用棧只剩下全局上下文。微任務(wù)執(zhí)行后完,進(jìn)行頁面渲染和垃圾回收后進(jìn)行下一輪事件循環(huán)。 準(zhǔn)備知識(shí) 1. 進(jìn)程(process) 進(jìn)程是系統(tǒng)資源分配一個(gè)獨(dú)立單位,一個(gè)程序至少有一個(gè)進(jìn)程。比方說:一個(gè)工廠代表一個(gè) CPU, 一個(gè)車間就是一個(gè)進(jìn)程,任一...
摘要:而異步則是相反,調(diào)用在發(fā)出之后,這個(gè)調(diào)用就直接返回了,所以沒有返回結(jié)果而是在調(diào)用發(fā)出后,被調(diào)用者通過狀態(tài)通知來通知調(diào)用者,或通過回調(diào)函數(shù)處理這個(gè)調(diào)用??偨Y(jié)回調(diào)函數(shù)是異步編程中的基石,但同時(shí)也存在很多問題,不太適合人類自然語言的線性思維習(xí)慣。 為什么 JS 是單線程? 眾所周知,Javascript 語言的執(zhí)行環(huán)境是單線程(single thread)。 所謂單線程,就是指一次只能完成一...
摘要:然后執(zhí)行環(huán)境會(huì)創(chuàng)建一個(gè)活動(dòng)對(duì)象,活動(dòng)對(duì)象作為函數(shù)運(yùn)行的變量對(duì)象,包含所有局部變量命名參數(shù)參數(shù)集合和,當(dāng)執(zhí)行環(huán)境銷毀,活動(dòng)對(duì)象也被銷毀。 高性能JavaScript整理總結(jié) 關(guān)于前端性能優(yōu)化:首先想到的是雅虎軍規(guī)34條然后最近看了《高性能JavaScript》大概的把書中提到大部分知識(shí)梳理了下并加上部分個(gè)人理解這本書有參考雅虎特別性能小組的研究成果,所以跟34 軍規(guī)有很多相似之處有不當(dāng)之...
閱讀 2211·2021-09-02 15:11
閱讀 1528·2019-08-30 15:43
閱讀 2082·2019-08-29 13:48
閱讀 2803·2019-08-26 13:55
閱讀 2110·2019-08-23 15:09
閱讀 2905·2019-08-23 14:40
閱讀 3438·2019-08-23 14:23
閱讀 2646·2019-08-23 14:20