一、多程序和多執行緒對比
多程序:程序不止乙個,開銷比較大,通訊方式比較複雜(可以用過管道、檔案、訊息佇列進行通訊),維護成本不高。
多執行緒:利用共享記憶體的方式進行指令的執行,開銷比較低,但是維護起來比較麻煩,需要考慮到共享資源的問題。不支援分布式運算。
二、多執行緒舉例
#include "iostream.h
"#include
"thread.h
"using
namespace
std;
void
function()
intmain()
*/return
null
;}
三、多執行緒管理
1、
voidfunction()
}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...