我现在要在c++ ,主线程之外,新建一个新的线程,新的线程,里面有有两个新线程创建,能不能实现,使用pthread_create()函数创建。,我要同时运行
时间: 2024-02-18 19:03:08 浏览: 51
可以使用pthread_create()函数在C++中创建多个新的线程,并让它们同时运行。
以下是一个示例代码,可以在C++中使用pthread_create()函数创建两个新的线程,这两个新的线程将同时运行:
```c++
#include <iostream>
#include <pthread.h>
void* thread_function1(void* arg)
{
std::cout << "Thread function 1 running..." << std::endl;
return NULL;
}
void* thread_function2(void* arg)
{
std::cout << "Thread function 2 running..." << std::endl;
return NULL;
}
int main()
{
pthread_t thread1, thread2;
// Create thread 1
if (pthread_create(&thread1, NULL, thread_function1, NULL))
{
std::cerr << "Error creating thread 1" << std::endl;
return 1;
}
// Create thread 2
if (pthread_create(&thread2, NULL, thread_function2, NULL))
{
std::cerr << "Error creating thread 2" << std::endl;
return 1;
}
// Wait for both threads to complete
if (pthread_join(thread1, NULL))
{
std::cerr << "Error joining thread 1" << std::endl;
return 1;
}
if (pthread_join(thread2, NULL))
{
std::cerr << "Error joining thread 2" << std::endl;
return 1;
}
std::cout << "Both threads completed." << std::endl;
return 0;
}
```
在这个示例代码中,我们首先创建了两个新线程,分别是thread1和thread2。在每个新线程中,我们都调用了不同的thread_function()函数来执行一些操作。然后,我们使用pthread_join()函数等待这两个新线程完成。在这个示例代码中,我们使用pthread_join()函数来等待两个新线程完成,这样可以确保这两个新线程同时运行。最后,我们输出一条消息来表示两个新线程都已经完成。
需要注意的是,线程的运行顺序是不确定的,因此无法保证哪个线程会先运行。如果需要控制线程的运行顺序,可以使用互斥锁和条件变量等同步机制来实现。
阅读全文