在C語言中,實現多線程通常需要使用POSIX線程庫(也稱為pthreads庫)。下面是一個簡單的示例,展示了如何使用pthreads庫創建和運行多個線程:
#include <pthread.h>
int thread_function(void *arg) {
// 線程執行的代碼
return 0;
}
pthread_create()
函數創建一個新線程,并將其與線程函數關聯。例如:#include <pthread.h>
#include <stdio.h>
void *thread_function(void *arg) {
// 線程執行的代碼
return NULL;
}
int main() {
pthread_t thread1, thread2;
// 創建兩個線程
if (pthread_create(&thread1, NULL, thread_function, NULL) != 0) {
printf("Failed to create thread 1\n");
return 1;
}
if (pthread_create(&thread2, NULL, thread_function, NULL) != 0) {
printf("Failed to create thread 2\n");
return 1;
}
// 等待線程結束(這里使用簡單的阻塞方式)
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
printf("All threads have finished.\n");
return 0;
}
在上面的示例中,我們創建了兩個線程,它們都執行相同的thread_function
。pthread_join()
函數用于等待線程結束。注意,在創建線程時,我們可以傳遞額外的參數給線程函數,這可以通過void *arg
指針實現。
這只是一個簡單的示例,展示了如何使用pthreads庫創建和運行多個線程。實際上,你可以使用更高級的技術來同步和通信線程,例如使用互斥鎖、條件變量等。
需要注意的是,多線程編程是復雜的,需要仔細處理線程同步和資源共享等問題,以避免出現競態條件、死鎖等問題。因此,在編寫多線程程序時,建議仔細閱讀相關文檔并謹慎設計。