C++
以学习交流为主
__铭天
这个作者很懒,什么都没留下…
展开
-
C++并发与多线程(7)-单例设计模式共享数据分析、解决,call_once
文章目录单例设计模式共享数据分析、解决,call_once1、设计者模式大概谈2、单例设计模式3、单例设计模式共享数据分析、解决4、std::call_once()单例设计模式共享数据分析、解决,call_once1、设计者模式大概谈设计模式:代码的一些写法。(1) 程序灵活,维护起来可能方便,用设计模式理念写出来的代码很晦涩,但是别人接管、阅读代码都会很痛苦。(2) 老外应付特别大的项目时,把项目的开发经验、模块划分经验,总结整理成设计模式。(3) 中国零几年设计模式刚开始火时,总喜欢拿一个原创 2021-09-09 14:10:03 · 222 阅读 · 0 评论 -
C++并发与多线程(6)-unique_lock详解
文章目录unique_lock(类模板)详解1、unique_lock类模板简介unique_lock(类模板)详解1、unique_lock类模板简介原创 2021-09-09 13:59:25 · 126 阅读 · 0 评论 -
C++并发与多线程(5)-互斥锁
文章目录互斥量概念、用法、死锁演示及解决详解1、互斥量(mutex)的基本概念2、互斥量用法3、std::lock_guard()类模板4、死锁4.1、死锁现象4.2、死锁的解决方案5、std::lock()函数模板6、std::lock_guard引入std:adopt_lock参数互斥量概念、用法、死锁演示及解决详解1、互斥量(mutex)的基本概念概念:互斥量:类对象,理解成一把锁,多个线程尝试用lock()成员函数来加锁,只有一个线程能锁定成功(成功的标志是Lock()函数返回),如果没锁原创 2020-12-25 15:24:13 · 444 阅读 · 1 评论 -
C++并发与多线程(4)-多个子线程创建
文章目录创建多个线程、数据共享、代码案例1、创建和等待多个线程2、数据共享2.1、只读数据2.2、有读有写3、共享数据的保护案例创建多个线程、数据共享、代码案例1、创建和等待多个线程先创建10个线程来看看:#include <iostream>#include <thread>#include <vector>using namespace std;// 线程入口函数void myprint(int inum) { cout << "原创 2020-12-25 10:23:29 · 1391 阅读 · 0 评论 -
C++11并发与多线程(3)-detach()大坑
文章目录detach大坑1、传递临时对象作为线程参数1.1、子线程入口函数的参数地址问题1.2、数据类型隐式转换问题2、临时对象作线程参数再分析2.1、线程id概念2.2、使用线程id进行分析3、传递类对象、智能指针为线程参数3.1、地址传递类对象3.2、传递指针指针4、成员函数指针作线程函数5、总结6、参考教程detach大坑1、传递临时对象作为线程参数在上篇文章中,我们简单介绍了使用仿函数构建线程时,不能使用引用、指针等来初始化类,防止在detach()时,主线程把局部变量内存释放,本节来详细介绍原创 2020-12-24 22:00:25 · 1101 阅读 · 0 评论 -
C++11并发与多线程(2)-单个子线程创建
文章目录线程启动、结束,创建线程方法,join,detach1、范例演示:线程的开始和结束1.1、thread1.2、join()1.3、detach()1.4、joinable()2、其他创建线程的方式线程启动、结束,创建线程方法,join,detach1、范例演示:线程的开始和结束1.1、thread1.2、join()1.3、detach()1.4、joinable()2、其他创建线程的方式...原创 2020-12-23 15:30:49 · 2382 阅读 · 1 评论 -
C++11并发与多线程(1)-基本概念
文章目录并发基本概念及实现,进程、线程基本概念1、并发、进程、线程的基本概念1.1、并发的基本概念1.2、可执行程序1.3、进程1.4、线程2、并发的实现方式2.1、多进程并发2.2、多线程并发3、参考教程并发基本概念及实现,进程、线程基本概念1、并发、进程、线程的基本概念1.1、并发的基本概念1、两个或者更多任务同时进行,一个程序同时执行多个独立的任务;2、以往计算机单核cpu:某个时刻只能执行一个任务,由操作系统调度每秒钟进行多次所谓的任务切换,并发的假象(不是真正的并发),这种切换(上下文原创 2020-12-18 16:04:20 · 166 阅读 · 1 评论 -
C++回调函数解析
文章目录回调函数1、using的使用1.1、配合命名空间,对命名空间权限进行管理1.2、类型重命名1.3、继承体系中,改变部分接口的继承权限2、std的模板类2.1、类模板说明2.2、模板参数说明2.3、std::function详解2.3.1、普通函数2.3.2、包装模板函数2.3.3、包装lambda表达式2.3.4、包装函数对象2.3.5、包装类静态成员函数2.3.6、包装类对象成员函数3、回调函数的使用参考教程回调函数今天读到cartographer中的一个回调函数:using GlobalS原创 2020-12-17 19:01:53 · 842 阅读 · 1 评论