c++写一段多线程代码
时间: 2023-10-20 18:19:24 浏览: 88
c++代码,多线程
当然,请问您需要实现哪种多线程程序呢?可能需要一些具体的背景和需求来更好地编写代码。不过,下面提供一个简单的多线程代码示例:
```c
#include <pthread.h>
#include <stdio.h>
#define THREAD_NUM 3
void* thread_func(void* arg)
{
int* num = (int*) arg;
printf("Thread ID: %ld, Number: %d\n", pthread_self(), *num);
pthread_exit(NULL);
}
int main()
{
pthread_t threads[THREAD_NUM];
int nums[THREAD_NUM] = {1, 2, 3};
for (int i = 0; i < THREAD_NUM; i++) {
int ret = pthread_create(&threads[i], NULL, thread_func, (void*) &nums[i]);
if (ret) {
printf("Error: unable to create thread, return code: %d\n", ret);
return -1;
}
printf("Created thread #%d, ID: %ld\n", i, threads[i]);
}
pthread_exit(NULL);
}
```
该代码中,定义了一个 `thread_func()` 函数作为线程执行的函数体,其中通过 `pthread_self()` 获取当前线程 ID 和 `arg` 指针获取传递给线程的参数。然后,在 `main()` 函数中创建 `THREAD_NUM` 个线程,每个线程传递一个不同的整数参数给 `thread_func()` 函数,通过 `pthread_create()` 创建线程并保存了线程 ID。最后,等待所有线程执行完毕并释放资源,使用 `pthread_exit()` 实现。
请注意,线程编程需要特别注意线程安全和锁控制等问题。如果您需要更复杂的多线程程序,建议使用专业的线程库或框架来实现。
阅读全文