在C語言中,創建多線程通常需要使用POSIX線程庫(pthread庫)。下面是一個簡單的示例,展示了如何使用pthread庫創建多線程:
#include <pthread.h>
void *thread_function(void *arg);
這里的arg
參數是一個指向任意類型的指針,可以在函數內部使用。
pthread_create()
函數創建新線程。這個函數的原型如下:int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
參數解釋:
thread
:一個指向pthread_t
類型的指針,用于存儲新線程的標識符。attr
:一個指向pthread_attr_t
類型的指針,用于設置線程屬性。如果傳遞NULL
,則使用默認屬性創建線程。start_routine
:指向線程函數的指針。arg
:傳遞給線程函數的參數。pthread_create()
函數創建新線程。例如,創建兩個線程:pthread_t thread1, thread2;
int main() {
pthread_create(&thread1, NULL, thread_function, (void *)0);
pthread_create(&thread2, NULL, thread_function, (void *)1);
// 等待線程結束
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
return 0;
}
gcc -o my_program my_program.c -lpthread
./my_program
這樣,程序就會創建兩個新線程,并在其中執行thread_function
函數。