在C語言中實現多線程可以使用POSIX線程庫(pthread)或Windows線程庫等。下面是一個使用POSIX線程庫實現多線程的示例:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
// 線程函數,傳入一個整數參數
void* thread_func(void* arg) {
int n = *(int*)arg;
printf("Hello from thread %d\n", n);
pthread_exit(NULL);
}
int main() {
int num_threads = 5;
pthread_t threads[num_threads];
int thread_args[num_threads];
// 創建多個線程
for (int i = 0; i < num_threads; i++) {
thread_args[i] = i;
pthread_create(&threads[i], NULL, thread_func, &thread_args[i]);
}
// 等待每個線程結束
for (int i = 0; i < num_threads; i++) {
pthread_join(threads[i], NULL);
}
printf("All threads are done.\n");
return 0;
}
在這個示例中,thread_func
是一個線程函數,用來打印線程的標識號。main
函數中首先創建了多個線程,每個線程都傳入一個整數參數,然后等待每個線程執行完畢。最后輸出所有線程結束的提示信息。
要編譯上述代碼,可以使用以下命令:
gcc -o multithreading multithreading.c -lpthread
這將生成一個可執行文件multithreading
,運行它將會看到多個線程按順序打印出它們的標識號,最后輸出所有線程結束的提示信息。
請注意,在使用多線程時要注意線程間的同步和互斥問題,以避免競爭條件和數據訪問沖突等問題。