随笔分类 -  C++多线程

摘要:首先,引入一个概念叫做reorder,即重新安排。编译器编译出来的代码是一个黑盒子,标准对此的要求是,只要程序的行为在外观上相同即可。因此语句的reorder可能在单线程环境下并无问题,但是多线程组合以后,往往会改变预期的行为。 其次,单线程环境下,用条件判断获得的保证,在多线程中是失效的。比如if 阅读全文
posted @ 2020-06-01 10:04 简讯 阅读(330) 评论(0) 推荐(0)
摘要:C++11提供了操作线程的几个高级接口,分别为函数async(), promise和future。 async用于异步启动一个线程,并返回一个future对象。注意,async不一定会马上启动线程,所以如果想要立刻启动线程,可以通过future对象调用get()或直接在async中加入std::la 阅读全文
posted @ 2020-05-30 22:13 简讯 阅读(690) 评论(0) 推荐(2)