在C語言多線程編程中,term
通常是指線程(thread)的終止
以下是一個使用POSIX線程庫(pthread)創建兩個線程并在主線程中等待它們完成的示例:
#include<stdio.h>
#include <stdlib.h>
#include <pthread.h>
void* thread_function(void *arg) {
int id = *((int*)arg);
printf("Thread %d is running.\n", id);
sleep(1); // 模擬線程執行時間
printf("Thread %d has finished.\n", id);
return NULL;
}
int main() {
pthread_t thread1, thread2;
int id1 = 1, id2 = 2;
// 創建線程1
if (pthread_create(&thread1, NULL, thread_function, &id1) != 0) {
perror("Failed to create thread 1");
exit(1);
}
// 創建線程2
if (pthread_create(&thread2, NULL, thread_function, &id2) != 0) {
perror("Failed to create thread 2");
exit(1);
}
// 等待線程1和線程2完成
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
printf("All threads have finished.\n");
return 0;
}
在這個示例中,我們創建了兩個線程并分別傳遞了不同的參數。當主線程調用 pthread_join()
函數時,它會等待指定的線程完成。在這種情況下,主線程將等待線程1和線程2完成,然后輸出 “All threads have finished.”。
請注意,這個示例使用了POSIX線程庫(pthread),這是Linux和其他Unix-like系統上的一個常見線程庫。在Windows上,可以使用Windows API或其他線程庫(如C++11的