JS高階高階之征服非同步程式設計

2021-08-02 04:47:20 字數 419 閱讀 2894

問大家乙個問題,js為什麼是單執行緒?

也許有些人知道,但是我要說的是有趣的事情,創造js的網景公司拒絕別人向瀏覽器裡加入執行緒的提議,原因是如果加入了執行緒,這門語言的推廣就沒有那麼成功了,js之所以這麼流行,某種程度上是因為菜鳥程式設計師也能上手,他們不必擔心死鎖和競爭問題。

總結:加入多執行緒,我乙個執行緒修改乙個節點,另乙個執行緒刪除乙個節點,那麼以哪個執行緒為準呢,這就要求你手動給節點加鎖,這就使程式設計難度提高很多,所以js選擇了單執行緒。

下面進入正軌。。。。

非同步程式設計的核心

程式中現在執行的部分和將來執行的部分之間的關係就是非同步程式設計的核心

事件 《JS高階程式設計》

一 事件流 1.事件流描述的是從頁面中接收事件的順序 2.事件冒泡 event bubble 事件從開始時由最具體的元素 就是巢狀最深的那個節點 開始,逐級向上傳播到較為不具體的節點 就是document 點選這裡 如果點選了div元素,那麼這個click事件會按如下順序傳播 1.2.3.4.doc...

JS高階 分析JS中的非同步操作

js因為是單執行緒的,所以在執行事務的時候,往往會因為某個事務的延遲,而導致伺服器假死,這時候非同步程式設計就顯的格外重要,但是非同步程式設計一般理解為 函式callback,典型的就是node,函式的層層巢狀又導致程式過於冗餘,因為閉包的存在,導致了記憶體的洩露或者誤改上一層 函式的引數,於是又有...

linux 高階網路程式設計高階之rawsocket

在linux套接字程式設計中,常見的套接字型別有sock stream,sock dgram int socket int domain,int type,int protocal 其中 type 欄位的 選項可以是 sock stream sock dgram sock seqpacket soc...