随笔分类 - 多线程
摘要:📕async、future、packaged_task、promise 本节内容需要包含头文件:#include <future> 一、std::async、 std::future 创建后台任务并返回值 ①:启用async **std::async是一个函数模板,用来启动一个异步任务,**启动起
阅读全文
摘要:📕条件变量 与本文无关的知识联系: 一、call_once 函数模板,第一个参数为标记,第二个参数为要调用的函数名,如test() 功能:保证写入第二个参数的函数(如test() )只能被调用一次。具备互斥量的能力,但互斥量消耗的资源少,更高效 call_once(), 第一个参数的标记为:std
阅读全文
摘要:📕unique_lock详解 一、unique_lock取代lock_guard unique_lock是个类模板**,实际应用中,一般lock_guard(推荐使用)**;lock_guard取代了mutex和的lock()和nulock(), 而unique_lock也取代mutex和的loc
阅读全文
摘要:📕互斥量和死锁 一、数据共享问题 首先,我们看看多线程的执行顺序: void TextThread() { cout << "我是线程:" << this_thread::get_id() << endl; //线程内操作代码 cout << "线程" << this_thread::get_id
阅读全文
摘要:📕线程传参详解 一、传递临时对象作为线程参数 1.1要避免的陷阱 直接看代码: #include <iostream> #include <thread> using namespace std; void myPrint(const int &i, char* pmybuf) { //如果线程从
阅读全文
摘要:📕线程启动、结束、创建方法 一、线程启动的开始 程序运行起来:生成一个进程,该进程所属的主线程开始自动运行;当主线程从main()函数返回,则整个进程执行完毕 主线程从main()开始执行;那么我们自己创建的线程,也需要从一个函数开始运行(初始函数),一旦这个函数运行完毕,线程也结束运行; 整个进
阅读全文
摘要:📕并发基本概念以及实现、进程、线程基本概念 一、并发、进程、线程的基本概念和综述 这些详细概念具体去看os笔记; 1.1 并发 两个或者更多的任务(独立的活动)同时发生(进行):一个程序同时执行多个独立的任务; 以往计算机,单核cpu(中央处理器):某一个时刻只能执行一个任务,由操作系统调度,每秒
阅读全文

浙公网安备 33010602011771号