為什麼nodejs不需要IO功能?

時間 2021-05-05 17:55:02

1樓:alsotang

專門來答個題支援一下 @Twiknight 。

樓主的截圖是對 Node.js 一開始技術選型的說明,而且樓主的問題是帶有曲解的。

Node.js 是帶有 IO 功能的。但 js 作為一門程式語言是不帶有 io 功能的。

js 只有語言規範,一開始主要是跑在瀏覽器中,而在瀏覽器中的 ajax 之類的行為,都是瀏覽器的 api,而非 js 本身的 api。

所以就 js 本身來說,並沒有規定或者說共識來決定,它在後端應該變現出怎樣的檔案訪問行為或者網路訪問行為。這時候,node.js 的作者才方便賦予它這些行為。

假設一門語言的標準庫裡面已經有 io 庫了,在 2009 年的時候,這種 io 庫一般都是同步的。但大眾使用著這門語言預設的同步io庫,並且基於它開發了很多上層庫的時候,你突然搞個非同步的進去,會讓後來的程式設計很混亂。稍微一不注意就會阻塞整個程序的運作。

python 在使用 tornado 的時候就很多這類同步 io 庫的問題需要注意。

2樓:李自樂

不是不要io 不要io還怎麼做web? 是不要同步io node優勢在於非同步非阻塞這是同步阻塞同步非阻塞非同步阻塞(io多路復用)非同步非阻塞四種模式中併發度最高的模式為了迎合這種模式 node選擇不要同步io

3樓:rambo

一門後台語言或者說伺服器語言。 不支援io操作。 還叫伺服器語言嗎?

首先我們搞清楚什麼叫IO。

> 課本定義 : I/O輸入/輸出(Input/Output),分為IO裝置和IO介面兩個部分。

> 通俗點任何乙個讀寫就算一次IO 其中包括(同步和非同步阻塞非阻塞)

4樓:

你理解錯了

但是他需要選擇一種程式語言實現他的想法,這種程式語言不能自帶IO功能

「這種程式語言」指的是node.js的載體語言,JS沒有IO功能,所以JS就成了(作為node.js的載體語言)最好("天然")的選擇。

5樓:秋風

有io,

雖然nodejs是單執行緒的,但它的IO操作是多執行緒的,使通常情況的IO操作效能提高。

但是當IO操作情況比較複雜的時候,有可能造成執行緒競爭狀態,導致IO效能降低。

當同時有大量IO操作駐留在系統中時候,會增加記憶體開銷。所以~如題~

6樓:斯巴拉西

不是說nodejs不需要IO,而是說在設計node這個平台的時候,選擇的實現語言最好不要包含(同步)IO功能。

目的是為了避免歷史包袱

為什麼父母不需要考試?

lzsj 我們先想象下,如果父母也要考試 採用3w 1h探索 what考什麼 when什麼時候考 where在哪考 how怎麼評判 what應該考父母手冊,你準備好迎接子女了嘛,你會用怎麼樣的方式撫養 教育孩子 與孩子相處。你現在工作穩定嗎,你有信心確保孩子能高枕無憂完成9年義務教育嗎,而不是把他 ...

為什麼說腹肌不需要練?

我我我我不知道 誰和你說腹肌不要練的,當然瘦的人線條會明顯,但這麼說的話人們哪塊肌肉要練嘞,瘦不就完事了嗎?人們總是關注腹肌,就像提到手臂,就想到肱二頭肌,這是乙個十分外行的表現。因為每一塊肌肉都會有對抗肌,例如內側的肱二頭肌和外側的肱三頭肌,要是想提高整個手臂的力量,那麼這兩塊肌肉都要足夠發達,如...

網路需不需要監管?為什麼?

企晟網際網路 網路互助的互助性和普惠性符合社會大眾的需要,但目前網路互助平台缺乏有效監管和約束,亟待加強監管。建議將網路互助納入保險監管體系實行統一監管,規範網路互助從業主體行為,促進行業健康發展。網路互助 門檻 低 中間成本低,能有效吸引更多會員參與,實現醫療保障對更大群體的覆蓋。張琳代表介紹,網...