多线程与同步

大数据122

多线程并行执行能够大大提升程序运行效率,但是也要注意随之带来的线程间同步问题,避免竞态条件("Race Condition")引起的难以发现的bug。这篇总结一下线程的创建和销毁、等待和恢复、加锁和解锁、锁的类型以及在某些情况下可以替代锁的原子操作。

启动线程

创建 std::thread对象可以启动一个线程,例如:

```c++

include

include

void worker()
{
for (size_t i = 0; i < 10; ++i)
{
std::cout << "thread: " << std::this_thread::get_id() << std::endl;
}
}

int main()
{

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长