C 中的併發執行緒 一

2021-10-09 14:59:44 字數 1524 閱讀 2739

當我想要用另乙個執行緒實現hello world函式時

mian.c函式

#include

#include

using namespace std;

void

hello()

intmain()

對於應用程式來說,該程式啟動了乙個全新的執行緒來實現,將執行緒數量一分為二初始執行緒是main(),而新執行緒由std::thread物件建構函式指定的hello()函式開始。t.join函式的作用在於初始執行緒等待新執行緒結束.

報錯如下資訊:

cmakefiles/template.dir/main.cpp.o:在函式『std:

:thread:

:thread<

void(&

)()>

(void(&

)())』中:

/usr/include/c++/5

/thread:

137:對『pthread_create』未定義的引用

collect2: error: ld returned 1 exit status

cmakefiles/template.dir/build.make:

83: recipe for target 'template' failed

make[3]

:***

[template] error 1

cmakefiles/makefile2:

75: recipe for target 'cmakefiles/template.dir/all' failed

make[2]

:***

[cmakefiles/template.dir/all] error 2

cmakefiles/makefile2:

82: recipe for target 'cmakefiles/template.dir/rule' failed

make[1]

:***

[cmakefiles/template.dir/rule] error 2

makefile:

118: recipe for target 'template' failed

make:**

*[template] error 2

原因:

原來使用併發執行緒實現時,需要在cmakelists中新增庫依賴

cmakelists

cmake_minimum_required(version 3.15)

project(template)

set(cmake_cxx_standard 11)

find_package(threads required)

add_executable(template main.cpp)

target_link_libraries(template threads::threads)

c 中的併發執行緒 二

主線程不必等子執行緒執行完畢,先走為敬 struct func void operator void oops 主函式執行緒已結束,my thread執行緒中的函式還在執行.呼叫join 的行為,還清理了執行緒相關的儲存部分,這樣std thread物件將不再與已經完成的執行緒有任何關聯。這意味著,...

C 併發程式設計(一) 建立執行緒

6k 次閱讀 讀完需要 9 分鐘 這個系列是我近期學習 c 併發程式設計的總結,文章和 最初都是基於 boost.thread,但是最近越來越發現,stl 內建的執行緒和同步工具已經足夠完善了。stl 和 boost 執行緒,在設計和用法上極其相似,一旦掌握了乙個,不難切換到另乙個。如果非要比較的話...

C 併發程式設計(一) 建立執行緒

c 併發程式設計 一 建立執行緒 這個系列是我近期學習 c 併發程式設計的總結,文章和 最初都是基於 boost.thread,但是最近越來越發現,stl 內建的執行緒和同步工具已經足夠完善了。stl 和 boost 執行緒,在設計和用法上極其相似,一旦掌握了乙個,不難切換到另乙個。如果非要比較的話...