把类成员函数作为参数传递给thread类......

news2024/11/28 19:42:49

   (1)把类成员函数作为参数传递给thread类

 一般地,在调用类的非静态函数时,编译器会隐式添加一参数,它是所操作对象的地址,  用于绑定对象和成员函数,并且位于所有其他实际参数之前。例如,类example具有成员函数func(int   x),而obj是该类的对象,则调用obj.func(2)等价于调用example::func(&obj,2)。请参阅《深度探索  C++对象模型》。
 
using namespace std;

class Student
{
public:
	void get(const string &sName,const size_t& nAge)
	{
		cout << "姓名:"<< sName << "\n年龄:"<< nAge <<"\n";
		 
	} 
};

int main()
{
	Student student;

	std::thread t(&Student::get,&student,"陈平安", 15);

	t.join();	 
}

输出:

 

 (2)把主线程内存移动到子线程

using namespace std;
using namespace lf;

void do_something(std::unique_ptr<string> pAuto)
{
	 
}

void main()
{
	  
	std::unique_ptr<string> pAutoFree(new string("test"));

	cout << "之前内存地址:" << pAutoFree << "\n";

	cout << *pAutoFree << "\n";


	std::thread t(do_something, std::move(pAutoFree));

	t.join();

	cout << "之后内存地址:" << pAutoFree << "\n";

	if (pAutoFree == NULL)
	{
		cout << "内存已移到新线程!";
	}
 
}

输出:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1348807.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CCNP课程实验-Route_Path_Control_CFG

目录 实验条件网络拓朴需求 基础配置需求实现1.A---F所有区用Loopback模拟&#xff0c;地址格式为&#xff1a;XX.XX.XX.XX/32&#xff0c;其中X为路由器编号。根据拓扑宣告进对应协议。A1和A2区为特例&#xff0c;A1&#xff1a;55.55.55.0/24&#xff0c;A2&#xff1a;55.55…

Linux驱动学习—设备树及设备树下的platform总线

1、什么是设备树&#xff1f; 设备树是一种描述硬件资源的数据结构。他通过bootloader将硬件资源传给内核&#xff0c;使得内核和硬件资源 描述相对独立。 2、设备树的由来 2.1 平台总线的由来 要想了解为什么会有设备树&#xff0c;设备树是怎么来的&#xff0c;我们就要先…

71内网安全-域横向网络传输应用层隧道技术

必备知识点&#xff1b; 代理和隧道技术的区别&#xff1f; 代理主要解决的是网络访问问题&#xff0c;隧道是对过滤的绕过&#xff0c; 隧道技术是为了解决什么 解决被防火墙一些设备&#xff0c;ids&#xff08;入侵检测系统&#xff09;进行拦截的东西进行突破&#xff0…

了解.NET 通用主机

写在前面 .NET 通用主机负责应用启动和生存期管理&#xff0c;主机是封装应用资源和生存期功能的对象&#xff0c;通用主机可用于其他类型的 .NET 应用程序&#xff0c;如控制台应用&#xff1b;.NET 通用主机基于类库Microsoft.Extensions.Hosting 来实现&#xff0c;本文记录…

保护Word或Excel的几种方法,总有一种满足你的需求

你已经在Microsoft Word或Excel中创建了一个重要或机密文件,你希望将其保密或至少保持安全。也许你想确保只有你和某些人可以阅读或编辑它。也许你想限制某人可以对文件进行的修改类型。你甚至可以向读者保证这是最终版本。如果你知道在Word和Excel中使用哪些工具以及它们是如…

安装Node修改Node镜像地址搭建Vue脚手架创建Vue项目

1、安装VSCode和Node 下载VSCode Visual Studio Code - Code Editing. Redefined 下载Node Node.js (nodejs.org) 检验是否安装成功&#xff0c;WinR,输入cmd命令&#xff0c;使用node -v可以查看到其版本号 2、修改镜像地址 安装好node之后&#xff0c;开始修改镜像地址 …

UntiyShader(五)属性、内置文件和变量

目录 一、如何使用属性 例子 ShaderLab中的属性的类型和Cg中的变量的类型之间的匹配关系 二、Unity提供的内置文件和变量 内置的包含文件 内置的变量 一、如何使用属性 在一开始我们提到过&#xff0c;材质和UnityShader之间有着密切的练习&#xff0c;我们可以通过材质面…

前后台分离开发

前后台分离开发 简介 前后台分离开发&#xff0c;就是在项目开发过程中&#xff0c;对于前端代码的开发由专门的前端开发人员负责&#xff0c;后端代码则由后端开发人员负责&#xff0c;这样可以做到分工明确、各司其职&#xff0c;提高开发效率&#xff0c;前后端代码并行开…

OpenOCD简介和下载安装(Ubuntu)

文章目录 OpenOCD简介OpenOCD软件模块OpenOCD源码下载OpenOCD安装 OpenOCD简介 OpenOCD&#xff08;Open On-Chip Debugger&#xff09;开放式片上调试器 OpenOCD官网 https://openocd.org/&#xff0c;进入官网点击 About 可以看到OpenOCD最初的设计是由国外一个叫Dominic Ra…

Qt高质量的开源项目合集

文章目录 1.Qt官网下载/文档2.第三方开源 1.Qt官网下载/文档 Qt Downloads Qt 清华大学开源软件镜像站 Qt 官方博客 2.第三方开源 记录了平常项目开发中用到的第三方库&#xff0c;以及一些值得参考的项目&#xff01; Qt AV 基于Qt和FFmpeg的跨平台高性能音视频播放框…

这本书没有一个公式,却讲透了数学的本质

这本书没有一个公式&#xff0c;却讲透了数学的本质&#xff01; 《数学的雨伞下&#xff1a;理解世界的乐趣》。一本足以刷新观念的好书&#xff0c;从超市到对数再到相对论&#xff0c;娓娓道来。对于思维空间也给出一个更容易理解的角度。 作者&#xff1a;米卡埃尔•洛奈 …

汇川PLC(H5U):伺服电机点动控制

一、基本概念理解 伺服电机旋转一圈的脉冲数 伺服电机上都装有一个编码器&#xff0c;这个编码器用于产生脉冲&#xff0c;常见伺服电机转一圈一般是产生10000个脉冲。相当于电机转360&#xff0c;产生了10000个脉冲&#xff0c;那旋转1就产生10000/360 27.7个脉冲。同理&am…

SDG大数据平台简介

联合国可持续发展目标&#xff08;Sustainable Development Goals&#xff09;缩写SDGs&#xff0c;是联合国制定的17个全球发展目标&#xff0c;在2000-2015年千年发展目标&#xff08;MDGs&#xff09;到期之后继续指导2015-2030年的全球发展工作。&#xff08;摘自百度&…

ROS安装PR2

一、PR2介绍 PR2是Willow Garage公司设计的机器人平台&#xff0c;也是目前科研领域经常用到的机器人之一。PR2有两条手臂&#xff0c;每条手臂七个关节&#xff0c;手臂末端是一个可以张合的夹爪&#xff1b;PR2依靠底部的四个轮子移动&#xff0c;在头部、胸部、肘部、夹爪上…

第 378 场周赛 解题报告 | 珂学家 | 分类讨论场

前言 整体评价 感觉是分类讨论场&#xff0c;t3用二分&#xff0c;是因为二分不会错&#xff0c;直接分类讨论容易WA. t4一开始看错题了&#xff0c;T_T, 看成翻转&#xff0c;写了半天StringHash, 还用上双hash&#xff0c;共8个StringHash。 重排的话&#xff0c;其实统计…

搜索引擎推广的实践技巧提升你的品牌影响力-华媒舍

搜索引擎推广是一种有效提升品牌影响力的推广策略。通过关键词优化、广告创意设计、定向投放和数据分析与优化等实践技巧&#xff0c;可以提高品牌的知名度、点击率和转化率。在实施引擎霸屏推广之前&#xff0c;还需对实践效果进行评估&#xff0c;以确保推广策略的有效性和适…

CMake入门教程【基础篇】在Windows、Linux上安装CMake

文章目录 windows平台第1步&#xff1a;下载CMake第2步&#xff1a;安装CMake第3步&#xff1a;验证安装第4步&#xff1a;初次使用第5步&#xff1a;构建和运行 Linux平台 windows平台 第1步&#xff1a;下载CMake https://cmake.org/ 首先&#xff0c;访问CMake官方网站。…

Python数据科学应用从入门到精通--Python读取、合并SPSS数据文件

在很多情况下&#xff0c;我们需要调用SPSS软件产生的数据&#xff0c;下面通过示例来进行讲解。首先需要将本书提供的数据文件存储在安装spyder-py3的默认路径位置&#xff08;C:/Users/Administrator/.spyder-py3/&#xff0c;注意具体的安装路径可能与此不同&#xff09;&am…

rsync的介绍与使用

rsync的介绍与使用 一、简介 rsync&#xff08;remote synchronize&#xff09;是Liunx/Unix下的一个远程数据同步工具。它能够以非常高效的方式传输和同步文件&#xff0c;它可以将一个目录的文件快速地同步到另一个目录&#xff0c;还可以通过网络快速同步多台主机间的文件…

2024年总结的前端学习路线分享(学习导读)

勤学如春起之苗&#xff0c;不见其增&#xff0c;日有所长 。辍学如磨刀之石&#xff0c;不见其损&#xff0c;日有所亏。 在写上一篇 2023年前端学习路线 的时候&#xff0c;时间还在2023年初停留&#xff0c;而如今不知不觉时间已经悄然来到了2024年&#xff0c;回顾往昔岁月…