编写一个c或c++的多线程调度程序
时间: 2024-03-23 07:38:17 浏览: 84
下面是一个使用C++11的线程库来实现多线程调度的示例程序。
```c++
#include <iostream>
#include <thread>
#include <vector>
using namespace std;
// 定义线程函数
void thread_function(int thread_id)
{
cout << "Thread " << thread_id << " is running" << endl;
}
int main()
{
vector<thread> threads;
// 创建线程池
for (int i = 0; i < 5; ++i) {
threads.push_back(thread(thread_function, i));
}
// 启动线程
for (auto& thread : threads) {
thread.join();
}
cout << "All threads have finished" << endl;
return 0;
}
```
在这个示例中,我们首先定义了一个线程函数`thread_function`,它接受一个线程ID作为参数,并打印出线程正在运行的消息。然后,我们创建了一个线程池,其中包含5个线程,每个线程都指向`thread_function`函数,并传递不同的线程ID。接下来,我们启动了所有线程,并等待它们全部结束,最后打印出“所有线程都已完成”的消息。
需要注意的是,C++中的线程库需要使用编译器支持C++11或更高版本的标准。如果编译器不支持C++11,就需要使用其他的多线程库,如Boost.Thread。在实际应用中,还需要考虑线程的优先级、同步与互斥等问题。
阅读全文