理解單執行緒,非阻塞I O,中介軟體

2021-10-23 18:01:10 字數 641 閱讀 6554

單執行緒的理解是任務只能單個單個的處理,比如說:

1+2=a,2+3=b,3+4=c。

單執行緒就是先算出a,再算出b,接著算c。

而多執行緒,假如是4執行緒,它就可以同時算出a、b、c。

單執行緒的好處就是易於程式設計,不需要考慮太多狀況,缺點是效率低。

多執行緒的好處是效率高,效能高,但並不是所有的運算都可以被並行化。比如:1+2=b, 2+b=a,當a的運算依賴於b的結果時,就必須先等待1+2的運算完成才可以進行下一步運算。

而且多執行緒容易出現各種意外的稀奇古怪的bug。

非阻塞i/o

並不是同步就阻塞,非同步就非阻塞。

即使是同步的,系統要等待乙個任務的結果,那依然可以讓記憶體先去做其他的事情,隔幾分鐘就回來看看是否有結果了,而不用一直在這裡等待結果出現。

非阻塞指的就是,系統要等待乙個任務的結果,但是可以讓系統在完成之後給它資訊,所以在等待期間可以去做其他的事情。

中介軟體簡單理解就是在業務之下,底層系統之上的功能件,可以讓編寫業務系統的人員輕鬆快捷地編寫業務邏輯。

為什麼會有中介軟體呢?因為業務開發中的很多功能都是可以復用的,完全沒必要讓每個程式設計師都編寫乙個中介軟體,這樣很浪費時間和精力。

詳情可見中介軟體是什麼?如何解釋比較通俗易懂?

裡面關於阿里發展程序的回答很詳細。

node 非阻塞式I O,單執行緒,非同步,事件驅動

1 單執行緒 不同於其他的後盾語言,node是單執行緒的,大大節約伺服器開支 node不為每個客戶建立乙個新的執行緒,僅使用乙個執行緒。通過非阻塞i o以及 事件驅動機制,使其巨集觀上看是併發的,可以處理高併發。2 非阻塞式i o 1 當我們遭遇非同步時,可以通過以下方法解決 函式 在使用非同步的函...

單程序 單執行緒 非阻塞 長鏈結

單程序 單執行緒 非阻塞實現併發 import socket import time defmain tcp server socket socket.socket socket.af inet,socket.sock stream 新建乙個伺服器socket tcp server socket.s...

python實現單執行緒多工非阻塞TCP服務端

coding utf 8 from socket import 1.建立伺服器socket sock socket af inet程式設計客棧,sock stream 2.繫結主機和埠 addr 程式設計客棧 7788 sock.bind addr 3.設定最大監聽數目,併發 sock.listen...