在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
,运行它将会看到多个线程按顺序打印出它们的标识号,最后输出所有线程结束的提示信息。
请注意,在使用多线程时要注意线程间的同步和互斥问题,以避免竞争条件和数据访问冲突等问题。