執行緒 程序(1)

2021-10-06 00:19:45 字數 1756 閱讀 6111

一、併發、程序、執行緒

併發:在乙個時間段內,乙個cpu通過切換的方式,來執行不同的任務

並行:在同一時間,多個cpu執行不同的任務

每個cpu切換執行不同任務(1000s,每個任務執行4s,來回切換)

程序:乙個可執行程式在執行中,即為乙個程序

執行緒:1)每個程序都有唯一乙個主線程,執行緒來執行程式,主線程結束,程序也結束

2)自己可以建立其他執行緒

二、執行緒啟動、建立、結束

#include

"pch.h"

#include

#include

using

namespace std;

class

mycout};

void

myprint()

void

myshow()

intmain()

);mylambda.

join()

; cout <<

"結束"

<< endl;

}

三、執行緒傳參詳解、detach()大坑、成員函式做執行緒函式

執行緒id:

不同執行緒的id不同,

傳入引數為基礎資料型別,則不需要改動,數值傳遞,如果是自定義型別(需要型別轉換的,必須使用強制型別轉換,),並且傳入引數為引用(實際上系統會複製乙個物件傳入子執行緒中)

#include

"pch.h"

#include

#include

#include

using

namespace std;

//傳入引用必須要用const

void

myprint

(const

int i,

const string& buf)

intmain()

採用ref函式會將物件的引用傳入子執行緒中,不再需要複製乙份

#include

"pch.h"

#include

#include

using

namespace std;

classa~

a()a

(const a& b)

:m_a

(b.m_a)};

void

myprint

(const a& a)

intmain()

成員函式作為執行緒函式

#include

"pch.h"

#include

#include

using

namespace std;

classa~

a()a

(const a& b)

:m_a

(b.m_a)

void

thread_work

(int num)

//成員函式作為執行緒函式};

void

myprint

(const a& a)

intmain()

程序,執行緒與執行緒池(1)

傳統方法 建立乙個新的執行緒,由該執行緒執行任務,任務執行完畢後執行緒退出 即時建立,即時銷毀 如果提交給執行緒的任務是執行時間較短,執行次數頻繁,那麼不斷銷毀和不斷建立的開銷則是不可忽略的。執行緒池採用預建立技術,在應用程式啟動之後,立即建立一定數量的執行緒,放入空閒佇列中,這些執行緒處於阻塞狀態...

程序與執行緒 1 程序狀態 PCB

參考哈工大李治軍老師公開課。程序 就是正在被計算機執行的程式,比如word,ppt等,都是乙個程序。計算機系統在某乙個時刻,當只有乙個cpu工作時,它只執行乙個程序,但是使用者在使用計算機時回開啟多個進行,這樣就涉及到了程序的不同狀態。程序可以被分為5個狀態,分別是 新建態 就緒態 執行態 終止態 ...

執行緒與程序相關1 執行緒與多執行緒

1.2.1 概念理解 1.2.2 執行緒的狀態1.3.1 標準庫threading python中的執行緒開發使用標準庫threading,程序靠執行緒執行 至少有乙個主線程,其他執行緒是工作執行緒,主線程是第乙個啟動的執行緒,即從上到下 執行的那個執行緒,工作執行緒是在主線程執行的基礎上進行分支並...