併發程式設計小結

2021-08-27 21:14:03 字數 738 閱讀 7333

3. 測試工具

4. 執行緒安全性 併發

高併發(high concurrency)

時間區域性性:如果某個資料被訪問,那麼在不久的將來它很可能被再次訪問。

空間區域性性:如果某個資料被訪問,那麼與它相鄰的資料很快也可能被訪問。

在多核cpu中,記憶體中的資料會在多個核心中存在資料副本,某乙個核心發生修改操作,就產生了資料不一致的問題。而快取一致性協議正是用於保證多個cpu cache之間快取共享資料的一致。

【mesi】是intel提出的一種快取一致性協議,定義了四種狀態: modified, exlusive,shared,invalid。

注意:快取一致性協議是保證不了記憶體的一致性的。

處理器為了提高運算速度而做出違背**原有順序的優化。

當多個執行緒訪問該類時,不管執行時環境採用何種排程方式,並且在呼叫的**中不需要任何額外的同步和協同,這個類都能表現出正確的行為,那麼就稱這個類是執行緒安全的。

原子性:提供了互斥訪問,同一時刻只能有乙個執行緒來對它進行操作。

可見性:乙個執行緒對主記憶體的修改可以及時的被其他執行緒觀察到。

有序性:乙個執行緒觀察其他執行緒中的指令執行順序,由於指令重排的存在,該觀察結果一般雜亂無序。

GoLang 併發小結

006.併發 1 概念 1.1 goroutine是go並行設計的核心,goroutine的本質是輕量級執行緒 1.2 golang的runtime實現了對輕量級執行緒即goroutine的智慧型排程管理 1.3 p m g原理 1.3.1 runtime有p m g三個概念,p對應作業系統程序 對...

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

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

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

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