c 多執行緒程式設計 初探

2022-05-02 14:09:08 字數 801 閱讀 7853

c++多執行緒併發可以幫助我們挖掘cpu的效能,在我們的思想中,似乎程式都是順序執行的。這樣的結論是建立在:程式是單執行緒程式。(比如我們平時寫的hello world程式)。

但是如果程式是多執行緒的。那麼這個結論就不成立了。先上**:

1 #include 2 #include 3 #include 4

5void

foo()611

12void

bar()

1318

19int

main()

20

程式中: #include 包含了執行緒類thread,例如程式的22行,就建立了新的執行緒 helper1,也就是建立新的執行緒是通過建立執行緒物件來實現的。也就是:main函式開始,就建立了乙個執行緒,但是這裡 又新開闢了乙個獨立的執行緒,而26行所示**則又開闢了乙個新的執行緒helper2。我們來直**一下,這個程式的結果是什麼:

可以看到,程式並沒有在函式foo執行完畢後才執行bar,看起來更像是這兩個執行緒是同時執行的(你可以去掉建立執行緒,然後就寫普通的單執行緒呼叫例項來看看結果有何不同)

在此,總結三點:

1.多執行緒程式設計可以使得程式能夠併發執行

2.多執行緒建立是通過thread類建立新的物件,也就是乙個執行緒物件就表示為乙個新的執行緒。

3.乙個執行緒被銷毀之前(析構函式被呼叫之前),必須要先結束該執行緒,這裡的方式是join()方法,該方法會阻塞後續執行緒的執行。(也就是該執行緒不執行完,後續無法執行,當然也可以採用非阻塞的方式detach)

關於對多執行緒併發程式設計,更多的需要參考下面這位博主的文章:這篇文章形象而細緻的介紹了初步的多執行緒程式設計。

初探C 多執行緒程式設計

初探c 多執行緒程式設計 以前在使用vb來實現多執行緒的時候,發現有一定的難度。雖然也有這樣那樣的方法,但都不盡人意,但在c 中,要編寫多執行緒應用程式卻相當的簡單。這篇文章將作簡要的介紹,以起到拋磚引玉的作用!net將關於多執行緒的功能定義在system.threading名字空間中。因此,要使用...

c 多執行緒程式設計初探

多程序就是跑了乙個main函式,直到結束 多執行緒就是在跑這個程序的過程中,把一條河流截成很多條小溪,可以相互通訊,共享變數等。c 11 新標準中引入了五個標頭檔案來支援多執行緒程式設計,它們分別是,和。該頭文主要宣告了兩個類,std atomic 和 std atomic flag,另外還宣告了一...

C語言多執行緒程式設計初探 MinGW pthread

將dll x86下的pthreadgc2.dll和pthreadgce2.dll拷貝到mingw的bin資料夾下 將include資料夾下的pthread.h sched.h和semaphore.h拷貝到mingw的include資料夾下 還有將lib x86下的libpthreadgc2.a和li...