c 的多執行緒和多程序

2022-03-26 06:50:08 字數 1065 閱讀 4837

一、多程序和多執行緒對比

多程序:程序不止乙個,開銷比較大,通訊方式比較複雜(可以用過管道、檔案、訊息佇列進行通訊),維護成本不高。

多執行緒:利用共享記憶體的方式進行指令的執行,開銷比較低,但是維護起來比較麻煩,需要考慮到共享資源的問題。不支援分布式運算。

二、多執行緒舉例

#include "

iostream.h

"#include

"thread.h

"using

namespace

std;

void

function()

intmain()

*/return

null

;}

三、多執行緒管理

1、

void

function()

}int

main()

}catch

(...)

}

2、執行緒只能被move而不能被複製,執行緒可以執行一切可以被呼叫的結構(包括類等)

calss factor

}void

main()

如果是通過引用傳遞引數;

calss factor

}相應的呼叫部分應該是:

thread t((function()),std::

ref(s));

如果呼叫的時候是:

thread t((function()),s);

儘管被呼叫的方法是引用傳遞值的,但是並不會影響值傳遞之實;

引用就是別名的概念,可以減少不必要的複製;

引用還可以寫成

thread t((function()),move(s));

但是執行緒只能寫成move

如:thread t2=move(t);

3、每個執行緒具有唯一的執行緒id,可以用get_id()獲取;

4、每個任務可以用多少個執行緒高效完成操作,和cpu的核心數有關,過多反而會導致效率低;

thread::hardware_concurrency() 檢視最多多少比較合適

多程序和多執行緒

嵌入式linux中文站,關於多程序和多執行緒,教科書上最經典的一句話是 程序是資源分配的最小單位,執行緒是cpu排程的最小單位 這句話應付考試基本上夠了,但如果在工作中遇到類似的選擇問題,那就沒有那麼簡單了,選的不好,會讓你深受其害。經常在網路上看到有xdjm問 多程序好還是多執行緒好?linux下...

多執行緒和多程序

首先說什麼是程序,載入記憶體中執行的程式,它就是乙個程序,而這個程式中執行的某個子任務就是乙個執行緒,程式包含了執行緒。程序對於執行緒是唯一的,而乙個程序可以有多個執行緒。程式執行的時候每隔一定時間在多執行緒之間執行,比如第乙個執行緒執行到0.01秒,馬上暫停跳到下乙個執行緒開始執行,又執行到0.0...

多程序和多執行緒

一 python 中多程序的使用 1 使用multiprocessing p process target function,args 引數,p.start 含義啟動程序 p.join 含義是等待子程序結束後在繼續執行 2 如果啟動大量的子程序,可以用程序池的方式批量建立子程序 from multi...