20 併發程式設計

2022-08-11 04:33:11 字數 746 閱讀 1550

目錄為什麼要併發?

程式預設執行方式就是序列,即程式自上而下,一行一行順序執行,必須把當前任務執行完才能執行下乙個,這樣造成效率低

併發可以同時執行多個任務 來提高程式的效率

​ 1.多程序 核心原理是多道技術

​ 2.多執行緒

​ 3.協程

程序指得是正在執行的程式,是作業系統排程以及進行資源分配的基本單位 。

多程序指的是同一時間有多個程式被裝入記憶體並執行

多程序的核心原理是多道技術

1.空間復用

​ 統一時間,載入多個任務到記憶體中,多個程序之間記憶體區域需要相互隔離,這種隔離是物理層面的隔離,其目的是為了保證數安全

2.時間復用

​ 指的是,作業系統會在多個程序之間做切換執行

​ 切換任務的兩種情況

​ 1.當乙個程序遇到了io操作 時會自動切換

​ 2.當乙個任務執行時間超過閾值會強制切換

​ 注意:在切換前必須儲存狀態,以便後續恢復執行

簡單的總結就是切換加儲存

有了多道技術,計算機就可以同時併發的處理多個任務

​ 序列 程式自上而下順序執行

​ 併發 在不同任務之間快速切換

​ 並行 真正的同時執行 必須具備多核cpu

以上三個概念都是用於描述處理任務的方式

​ 阻塞 指的是程式遇到了io操作,無法繼續執行**時的一種狀態

​ 非阻塞 指的是程式沒有遇到io操作的一中狀態

​ 是程式的狀態

併發程式設計學習 併發程式設計的挑戰

死鎖 資源限制的挑戰 併發程式設計的目的是為了讓程式執行的更快,但是並不是啟動更多的執行緒,就能讓程式最大限度的併發執行。在進行併發程式設計時,如果希望通過多執行緒執行任務讓程式執行的更快,會面臨非常多的挑戰,比如上下文切換的問題,死鎖的問題,以及受限於硬體和軟體的資源限制問題 即使是單核處理器也支...

網路程式設計 併發程式設計

01 網路程式設計 軟體開發架構 osi七層協議 乙太網協議 ip 埠 tcp udp 02 tcp的三次握手四次揮手理解及面試題 03 socket套接字使用 tcp連線通訊迴圈 tcp粘包問題 struct模組 tcp傳送檔案 04 udp協議 tcp udp基於socketserver的併發 ...

python併發程式設計 程序,併發

1.程序是乙個正在執行的程式,或者說是程式執行的過程,程序是個抽象概念 程序起源於作業系統,是作業系統最核心的概念,作業系統所有其他的概念都是圍繞程序展開 研究程序最底層就是在研究作業系統底層 2.序列 程序 乙個任務完完整整的執行完畢後,在執行下乙個任務 3.併發 程序 看起來多個任務是同時執行即...