我现在要在c++ ,主线程之外,新建一个新的线程,新的线程,里面有有两个新线程创建,能不能实现,使用pthread_create()函数创建
时间: 2024-02-18 16:03:07 浏览: 63
Pthread创建一个线程
可以使用pthread_create()函数在C++中创建新的线程。在主线程之外创建新的线程,可以使用pthread库提供的pthread_create()函数来创建新线程。
创建两个新线程,可以在第一个新线程中调用pthread_create()函数来创建第二个新线程,然后在第二个新线程中再调用pthread_create()函数来创建第三个新线程。
以下是一个示例代码,可以在C++中使用pthread_create()函数创建三个新线程:
```c++
#include <iostream>
#include <pthread.h>
void* thread_function(void* arg)
{
std::cout << "Thread function running..." << std::endl;
return NULL;
}
int main()
{
pthread_t thread1, thread2, thread3;
// Create thread 1
if (pthread_create(&thread1, NULL, thread_function, NULL))
{
std::cerr << "Error creating thread 1" << std::endl;
return 1;
}
// Wait for thread 1 to complete
if (pthread_join(thread1, NULL))
{
std::cerr << "Error joining thread 1" << std::endl;
return 1;
}
// Create thread 2
if (pthread_create(&thread2, NULL, thread_function, NULL))
{
std::cerr << "Error creating thread 2" << std::endl;
return 1;
}
// Wait for thread 2 to complete
if (pthread_join(thread2, NULL))
{
std::cerr << "Error joining thread 2" << std::endl;
return 1;
}
// Create thread 3
if (pthread_create(&thread3, NULL, thread_function, NULL))
{
std::cerr << "Error creating thread 3" << std::endl;
return 1;
}
// Wait for thread 3 to complete
if (pthread_join(thread3, NULL))
{
std::cerr << "Error joining thread 3" << std::endl;
return 1;
}
std::cout << "All threads completed." << std::endl;
return 0;
}
```
在这个示例代码中,我们首先创建第一个新线程,并等待它完成,然后创建第二个新线程,并等待它完成,最后创建第三个新线程,并等待它完成。在每个新线程中,我们都调用了thread_function()函数来执行一些操作。
阅读全文