用prthread_creat创建多个线程,并让每个线程打印其id
时间: 2024-09-10 18:19:33 浏览: 47
创建线程:pthread_creat() 函数介绍.md
在C语言中,`pthreads`库用于处理线程。如果你想要使用`pthread_create`函数创建并让每个新线程打印其ID,你可以按照以下步骤操作:
1. 首先,你需要包含必要的头文件:
```c
#include <pthread.h>
#include <stdio.h>
```
2. 定义一个函数,这个函数将在每个新线程中运行。在这个函数中,你需要获取当前线程ID并打印出来:
```c
void *thread_function(void *arg) {
pthread_t tid;
int thread_id = (int)arg;
// 获取当前线程ID
pthread_getattr_np(pthread_self(), &tid);
printf("Thread ID: %d\n", thread_id);
return NULL; // 线程结束标志
}
```
3. 使用`pthread_create`创建新线程,并将线程ID作为参数传递给线程函数:
```c
int main() {
const int num_threads = 5; // 创建的线程数量
pthread_t threads[num_threads];
int thread_ids[] = {0, 1, 2, 3, 4}; // 各个线程的ID
for (size_t i = 0; i < num_threads; ++i) {
// 创建线程,并传入线程函数以及当前线程ID
if (pthread_create(&threads[i], NULL, thread_function, (void*)thread_ids[i]) != 0) {
perror("pthread_create failed");
exit(1);
}
}
// 等待所有线程完成
for (size_t i = 0; i < num_threads; ++i) {
pthread_join(threads[i], NULL);
}
return 0;
}
```
阅读全文