当前位置: 首页 > article >正文

C++并发与多线程(6) | 传递临时对象作为线程参数的一些问题Ⅲ

一、传递类对象作为线程参数

#include<iostream>
#include<thread>

using namespace std;

class A
{
public:
	mutable int m_i;

	//类型转换构造函数,可以把一个int转换成一个类A对象
	A(int a) :m_i(a) {
		cout << "[A::A(int a)构造函数执行]" << this << "thread_id = " << std::this_thread::get_id() << endl;
	}


	A(const A& a) :m_i(a.m_i) {
		cout << "[A::A(int a)拷贝构造函数执行]" << this << "thread_id = " << std::this_thread::get_id() << endl;
	}

	~A() {
		cout << "[A::~A(int a)析构函数执行]" << this << "thread_id = " << std::this_thread::get_id() << endl;
	}
};


void myprint2(const A& pmybuf)
{
	pmybuf.m_i = 199; // 因为是mutable的,修改该值不会影响main函数
	cout << "子线程myprint2的参数地址是" << &pmybuf << "thread_id = " << std::this_thread::get_id() << endl;// 打

http://www.kler.cn/a/106522.html

相关文章:

  • 【WebRTC】视频发送链路中类的简单分析(下)
  • Nginx: 实现Websocket代理
  • Flutter:Widget生命周期
  • DAY65||Bellman_ford 队列优化算法(又名SPFA)|bellman_ford之判断负权回路|bellman_ford之单源有限最短路
  • 03-axios常用的请求方法、axios错误处理
  • 深入理解 source 和 sh、bash 的区别
  • 鼎鑫鸿鄴引入“能源互联网+”理念 打造共赢
  • Redis桌面管理工具:Redis Desktop Manager for Mac
  • 非遗主题网站的设计与实现基于PHP实现
  • C语言 每日一题 PTA 10.27 day5
  • React 中常用的几种路由跳转方式
  • Go 语言使用 XORM 操作 MySQL 的陷阱
  • 开放大学生活的新引领——电大搜题助力重庆开放大学学子实现梦想
  • 【AI视野·今日Robot 机器人论文速览 第五十八期】Thu, 19 Oct 2023
  • Redis 主从
  • 【git命令】修改分支名字
  • 一个Entity Framework Core的性能优化案例
  • 前端 TS 快速入门之四:函数
  • Oracle数据库基础
  • shell的执行流控制
  • 电脑msvcp100.dll丢失了怎么办?详细的5个修复方法
  • 【代码随想录】算法训练计划03
  • Centos7 安装和配置 Redis 5 教程
  • 视频相关学习笔记
  • 云台/稳定器/无人机姿态控制之欧拉角与四元数控制优缺点分析
  • 记一次任意文件下载到Getshell