标签:play 拷贝 _id color microsoft fir join() cpp tor
从C++11开始提供了线程的支持,终于可以方便的编写跨平台的线程代码了。除了std::thread类,还提供了许多其它便利同步的机制,本篇总结是C++11学习笔记系列的首篇总结。
std::thread定义在<thread>
中,提供了方便的创建线程的功能。
从定义中我们可以得知:
因为thread类比较简单,我们通过几个例子来学习。
注意:参数会以默认的方式被复制到内部存储空间,直到使用的时候才会转成对应的类型。
下面的例子有问题吗?有什么问题?
局部变量buffer
的指针会被传递给新线程,如果oops()
在buffer
被转换成string
之前退出,那么会导致未定义的行为。解决之道是在构造std::thread
的时候传递string
变量。std::thread t(f, 3, std::string(buffer));
因为默认会复制,如果像要传递引用,需要使用std::ref()
来标识,就像std::bind()
那样。
标签:play 拷贝 _id color microsoft fir join() cpp tor
原文地址:https://www.cnblogs.com/bianchengnan/p/9459490.html