執行緒 linux之thread錯誤解決方案

2022-05-06 18:15:10 字數 1131 閱讀 8287

1.錯誤現象:

undefined reference to 'pthread_create'

undefined reference to 'pthread_join'

2.問題原因:

pthread 庫不是 linux 系統預設的庫,連線時需要使用靜態庫 libpthread.a,所以在使用    pthread_create()建立執行緒,以及呼叫 pthread_atfork()函式建立fork處理程式時,需要鏈結該庫。

3.問題解決:

在編譯中要加 -lpthread引數

gcc thread.c -o thread -lpthread
thread.c為你些的原始檔,不要忘了加上標頭檔案#include

4.原始碼:

//thread_currenttime.c

#include #include #include #include #include void *print_currenttime(void);

int main ()

printf("waiting for new thread...\n");

ret = pthread_join(new_thread, &thread_result);

if (ret != 0)

printf("thread joined,returned:%s\n", (char *)thread_result);

return 0;

}void *print_currenttime(void)

5.mystery註解

1)預設狀態下建立的執行緒是非分離狀態的執行緒(執行緒的分離屬性指明乙個執行緒以什麼樣的方式來終止自己

2)非分離狀態的執行緒必須呼叫pthread_join()函式等待建立的執行緒結束,當函式pthread_join()返回時,新建立的執行緒才終止並釋放自己占有的資源。

3)分離狀態的執行緒不需要原執行緒等待,函式執行結束執行緒便終止,同時釋放占用的資源

本文出自 「成鵬致遠」 部落格,請務必保留此出處

Thread之結束執行緒 8

在thread中stop 方法已經被不推薦使用了,那麼我們該如何去以一種優美的姿態去結束掉它呢?class threaddemo02 implements runnable public void changeflag public class stopthread num system.out.p...

Android執行緒管理之Thread使用總結

今天先來總結一下thread使用 new 一旦被例項化之後就處於new狀態 runnable 呼叫了start函式之後就處於runnable狀態 running 執行緒被cpu執行 呼叫run函式之後 就處於running狀態 blocked 呼叫join sleep wait 使執行緒處於bloc...

多執行緒 Thread

如果從另外乙個執行緒操作windows窗體上的控制項,就會與主線程產生競爭,造成不可預料的後果,甚至死鎖。因此,windows gui程式設計有乙個規則 只能通過建立控制項的執行緒來操作控制項的資料!實現方法 要從執行緒外操作windows控制項,那麼就要使用invoke或begininvoke方法...