併發程式設計理論

2022-03-14 04:08:51 字數 657 閱讀 8658

--併發:在作業系統中,是指乙個時間段中有幾個程式都處於已啟動執行到執行完畢之間,且這幾個程式都是在同乙個處理機上執行,但任乙個時刻點上只有乙個程式在處理機上執行。簡言之,是指系統具有處理多個任務的能力。

當系統有乙個以上cpu時,則執行緒的操作有可能非併發。當乙個cpu執行乙個執行緒時,另乙個cpu可以執行另乙個執行緒,兩個執行緒互不搶占cpu資源,可以同時進行,這種方式我們稱之為並行(parallel)。簡言之,是指系統具有同時處理多個任務的能力。

多個程序切換執行,由於cpu處理速度較快,往往看上去在同時執行.

原理:cpu從硬體層面將記憶體分割開,使得程序在自己獨立的記憶體中執行,cpu每次只處理乙個程序,當這個程序進入阻塞狀態(多為io)時,或者是執行時間 超過設定時間時,cpu切換至別的就緒狀態的程式去執行,等到該程式結束io(阻塞狀態)進入就緒狀態時,cpu才會切換回來繼續執行該程序

多個程序同時執行,要求多核才能實現
就是等待狀態,當程序進入io狀態或者時,cpu需要等待其結果是,那麼就是進入阻塞狀態,當伺服器連線乙個客戶端,接收不到客戶端資料時,也是阻塞狀態
不需要等待的狀態就是非阻塞狀態
詳情參考:併發並行同步非同步阻塞非阻塞詳解

36 併發程式設計理論

多道技術是基於單核背景下產生的 cpu 執行過程 單核 cpu 同一時間只能執行乙個任務,這個任務不結束,不能執行其他任務 cpu 在執行a任務時,a任務發生了 io 操作或者是執行時間過長時,此時 cpu 可以將 a 儲存狀態 然後再切換去執行b任務。等到執行遇到 io操作或者執行時間過長時 再將...

網路程式設計02 併發理論

import socket s socket.socket 建立網路傳輸,預設tcp協議 s.bind ip port 繫結ip 埠 s.listen 5 半連線池 sock,addr s.accept 監聽,三次握手的lisent態 sock.recv 1024 接收內容 sock.send 傳送...

python 併發程式設計理論部分

一,什麼是程序?程序 正在進行的乙個過程或者說乙個任務。而負責執行任務的則是cpu 舉例 單核 多道,實現多個程序的併發執行 egon在乙個時間段內有很多任務要做 python備課的任務,寫書的任務,交女朋友的任務,王者榮耀上分的任務,但egon同一時刻只能做乙個任務 cpu同一時間只能幹乙個活 如...