admin 管理员组文章数量: 1087139
2024年3月29日发(作者:office怎么求平均分)
C++中可以使用多种方式来实现多线程,其中比较常用的有以下
几种:
1. 使用C++11标准库中的thread类
C++11标准库中提供了thread类,可以用来创建和管理线程。
下面是一个简单的例子:
```c++
#include
#include
void thread_function() {
std::cout << "Hello from thread!" << std::endl;
}
int main() {
std::thread t(thread_function); // 创建线程,并将函数
thread_function作为参数传递给线程t
(); // 等待线程t执行完毕
return 0;
}
```
2. 使用C++11标准库中的mutex和condition_variable类来实
现线程同步
多线程中经常需要多个线程之间共享数据,这时就需要使用线程
同步技术来保证数据的一致性和安全性。C++11标准库中提供
了mutex和condition_variable类来实现线程同步。下面是一个
简单的例子:
```c++
#include
#include
#include
#include
std::mutex mtx; // 全局互斥锁
std::condition_variable cv; // 全局条件变量
bool ready = false; // 全局标志位
void thread_function() {
std::unique_lock
(lock, []{return ready;}); // 等待标志位ready为true
std::cout << "Hello from thread!" << std::endl;
}
int main() {
std::thread t(thread_function); // 创建线程,并将函数
thread_function作为参数传递给线程t
std::this_thread::sleep_for(std::chrono::seconds(1)); // 主线
程休眠1秒钟,让子线程先执行
ready = true; // 设置标志位ready为true
_all(); // 通知所有等待在cv上的线程,标志位
ready为true了,可以继续执行了
(); // 等待线程t执行完毕
return 0;
}
```
3. 使用第三方库如或Pthreads库来实现多线程
版权声明:本文标题:c++ 多线程写法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1711697188a606158.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论