国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

javascript - 關于node同步異步

瀏覽:94日期:2023-09-08 09:37:47

問題描述

javascript - 關于node同步異步

這是來自深入淺出NodeJS一書的

為什么說異步耗時取決于最慢的文件就算是異步,不也是單線程,需要一個任務執行完再執行下一個么取決于最慢的文件不就是說這兩個代碼是同時執行的?

問題解答

回答1:

同步I/O 是 1->2->3->4 這樣的時間,為1+2+3+4的時間

異步I/O 是 --> 1234四個同時開始 時間為4個里面最慢的那個。。

還有js單線程只是你寫的那些基本的js代碼為單線程,一但是基本的網絡或者文件I/O,的時候會進入事件循環,進行并發操作。。。1234 是同時開始的。誰也不等誰。

回答2:

同時進行的,互不干擾。

回答3:

node.js異步任務底層是多線程實現的,對于一個異步任務,node維護一個線程池,一個異步任務從線程池中取出一個線程去執行,執行完后,將線程放回線程池

回答4:

同時進行和同步是兩回事情!同步是指按事情執行的前后順序!后者必須依賴前者的結果!異步是同時進行但是事情之間的聯系對于整個流程來說影響不大!好比同時進行多個ajax 請求你的目的只是為了請求數據后展示數據之間并沒有任何關聯。打個比方吧!就好比修路!肯定是先鋪瀝青再去劃線!不然你邊鋪路邊畫線就把鋪好的路給搞砸了!這時必須同步異步就會一團糟!但是劃線和道路清理和道路圍欄的安裝這些事情可以同時進行就是所謂的異步并不會影響結果但是也會出現快慢因為安裝圍欄的復雜度高相比其他操作的慢但是最后還是完成了整個流程!反過來看如果你把后三者都按同步處理等待時間就會更加長因為都要等著前一步處理掉再去處理后一步!但是之前10個人修路由于后期要處理三件事情要想實現異步必須增加到30人就好比我們增加了計算機的開銷一樣(不太專業這里),但是往往計算資源過剩我們這樣異步就很好利用了計算資源!

回答5:

一個程序,同一時刻,能利用CPU多核并行執行多個任務,底層不是多線程就是多進程.

Node的底層是libuv.

對于網絡讀寫(I/O),libuv在Linux上用的是內核提供的epoll機制.Linux內核epoll的底層應該是使用內核線程實現的,不過epoll的底層實現不需要libuv關心,libuv只需調用.

對于文件讀寫(I/O),libuv可能使用Linux AIO,也可能自己用多線程實現.因為Linux內核提供的異步文件讀寫機制AIO主要還是為數據庫服務的,比如MySQL就依賴libaio.so.目前的Kernel AIO僅支持O_DIRECT方式(DirectIO)來對磁盤讀寫.這意味著,程序無法利用系統的緩存Page Cache,同時它要求讀寫的的大小和偏移要以區塊的方式對齊.對于大文件讀寫可能還好,小文件不太適合.所以libuv應該是自己在底層用多線程來實現異步文件讀寫.

不管是網絡讀寫還是文件讀寫,程序總是要返回的,什么時候返回,肯定是所有任務處理完成后返回,所以耗時一般是讀寫時間最長的那個任務.不過,文件讀寫可能受限于磁盤IOPS,不可避免會產生阻塞,這時整體耗時可能會更長.

Node用于服務器編程或者服務器中間層編程時,主要還是發生網絡讀寫.

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 亚洲特级毛片 | 男人桶女人暴爽的视频 | 国产91在线精品 | 国产视频高清在线 | 亚洲欧美日韩国产制服另类 | 男女交性拍拍拍高清视频 | 成在线人视频免费视频 | 97视频在线观看免费播放 | 中文字幕亚洲不卡在线亚瑟 | 久久久久免费观看 | 深夜福利网站在线观看 | 成人午夜亚洲影视在线观看 | 日本高清久久 | 亚洲精品国产精品国自产观看 | 欧美日韩国产高清一区二区三区 | 久久免费精品一区二区 | 欧美日韩精品一区二区三区不卡 | 尹人在线视频 | 大学生久久香蕉国产线观看 | 中国性猛交xxxxx免费看 | 欧美一级二级三级视频 | 亚洲日韩精品欧美一区二区 | 荡公乱妇蒂芙尼中文字幕 | 欧美另类videosbestsex久久 | 亚洲国产精品看片在线观看 | 啪视 | 成人毛片免费观看视频大全 | 久久综合狠狠综合久久97色 | 九草在线免费观看 | 香港三级日本三级人妇三级四 | 国产成人毛片精品不卡在线 | 一级片在线免费看 | 亚洲欧美视频一区二区三区 | 日本亚州视频在线八a | 伊人狼人综合 | 国产中文字幕在线观看 | 手机看片神马午夜 | 久久一区二区三区99 | 久久精品一区二区免费看 | 国产精品高清久久久久久久 | 热久久在线观看 |