當我想要用另乙個執行緒實現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 執行緒,在設計和用法上極其相似,一旦掌握了乙個,不難切換到另乙個。如果非要比較的話...