c++创建线程注意事项(2)

c++创建线程注意事项(2),第1张

c++创建线程注意事项(2)
  • 线程ID:std::this_thread::get_id()获取线程ID
  • 传递类对象时:虽然线程入口采用引用接收,但并不是真实的引用,而是相当于值传递,要调用一次拷贝构造;只有在传参时加上std::ref()才是真实的引用
  • 当传入智能指针时,需要使用std::move()转换
  • 用类的成员函数作为线程参数 (参数分别为 &成员函数名,对象名,参数)
#include 
#include 
using namespace std;

class A
{
public:
    int m_i;
    A(int a):m_i(a){
        cout<<"构造函数执行,地址为:"< buff)
{
    cout<<"子线程2开始"< myptr(new int(100));
    thread thread2(myprint2,std::move(myptr));
    thread2.join();

    //用类的成员函数作为线程参数   (参数分别为成员函数,对象,参数)
    thread thread3(&A::thread_word,myobj,15);
    thread3.join();
    cout<<"主线程结束"<					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5115319.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存