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

浙公网安备 33010602011771号