term在c語言多線程編程中的應(yīng)用

小樊
86
2024-09-05 01:24:49
欄目: 編程語言

在C語言多線程編程中,term 通常是指線程(thread)的終止

以下是一個(gè)使用POSIX線程庫(pthread)創(chuàng)建兩個(gè)線程并在主線程中等待它們完成的示例:

#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); // 模擬線程執(zhí)行時(shí)間
    printf("Thread %d has finished.\n", id);
    return NULL;
}

int main() {
    pthread_t thread1, thread2;
    int id1 = 1, id2 = 2;

    // 創(chuàng)建線程1
    if (pthread_create(&thread1, NULL, thread_function, &id1) != 0) {
        perror("Failed to create thread 1");
        exit(1);
    }

    // 創(chuàng)建線程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;
}

在這個(gè)示例中,我們創(chuàng)建了兩個(gè)線程并分別傳遞了不同的參數(shù)。當(dāng)主線程調(diào)用 pthread_join() 函數(shù)時(shí),它會(huì)等待指定的線程完成。在這種情況下,主線程將等待線程1和線程2完成,然后輸出 “All threads have finished.”。

請(qǐng)注意,這個(gè)示例使用了POSIX線程庫(pthread),這是Linux和其他Unix-like系統(tǒng)上的一個(gè)常見線程庫。在Windows上,可以使用Windows API或其他線程庫(如C++11的` 庫)實(shí)現(xiàn)類似的功能。

0