多執行緒基礎的簡單的知識

2021-10-07 08:54:17 字數 815 閱讀 4231

1.共享記憶體 訊號量同步

比如說a程序位址空間和b程序位址空間他們的物理記憶體是一樣的

2.訊息佇列

傳送訊息時,必須要指定訊息型別,型別值是long,>=,如果訊息佇列放滿了,則傳送訊息msgsnd()會阻塞

獲取訊息時,必須指定訊息型別,型別為0,則說明不區分訊息型別,一般型別值是 >=1,訊息隊列為空,擇msdrcv()會阻塞

3.執行緒

程序:乙個正在執行的程式

執行緒:程序內部的一條執行路徑,執行序列

pthread_cerate()建立的是乙個核心級的執行緒

pthread_exit()退出執行緒

pthread_join()合併執行緒,等待執行緒結束

編譯連線時指定執行緒庫的名字

gcc -o main mian.c -lphread

4.執行緒同步方法:訊號量 互斥鎖 條件變數 讀寫鎖

5.保證執行緒安全的措施:

1)同步

2)使用執行緒安全的函式(可重入函式)

6.現成的實現:

1)使用者級

2.核心級

3)組合(混合)

7.檢視程序中的執行緒命令

ps -l

ps -elf

8.多執行緒程式,無論建立了多少個執行緒,那麼,fork後,子程序都只有一條;執行路徑就是fork所在的哪條路徑

9.父程序建立的互斥鎖mutex在fork後,子程序也會複製乙份,子程序中鎖的狀態和父程序在複製時的狀態相同

可以使用pthread_atfork()設定,使鎖的狀態在子程序中變得清晰

我們可以挑沒人用鎖的時候,再fork的執行可能被推遲或者延遲

多執行緒基礎知識

建立乙個序列佇列,該佇列中從方的都是要依次執行的任務,dispatch queue serial 表示序列佇列的標示 dispatch queue t serialqueue dispatch queue create serial dispatch queue serial 建立乙個並行佇列,並行...

多執行緒 基礎知識

1 建立執行緒 extends thread implements runnable 啟動執行緒 threadl類的start 執行緒完成 1 run 方法執行完成 2 丟擲乙個未處理的異常導致執行緒的提前結束 2 執行緒的狀態 新建立 執行緒被建立,但是沒有呼叫start方法 可執行 runnab...

簡單的多執行緒

多個執行緒之間是搶cpu的關係有隨機性 主線程的名字 main 子執行緒的名字 從thread 0開始命名 setname可以命名 start 方法,來開啟執行緒,繼而實現run方法的自動呼叫.手動呼叫run的時候,他失去了任務區的功能,變成了乙個普通的方法.執行緒和任務分離 哪個執行緒需要工作,就...