随笔分类 - C++多线程
C++进阶
摘要:一个C++的单例类,类里面定义了一个线程对象,线程对象会定时去计算一个时间,并返回这个计算出来的时间。 应用场景: 比如,有些比较消耗时间的操作,就可以放在线程里面定时计算,我们在外部定时读取。 这样就可以避免主线程被阻塞。 #include <iostream> #include <thread>
阅读全文
摘要:使用文件流的方式,解析 cat /proc/meminfo 文件里面的数据 #include <iostream> #include <fstream> #include <sstream> #include <string> #include <unordered_map> #include <m
阅读全文
摘要:在C++中,std::promise对象调用get_future()方法返回一个std::future对象,而不是指针、引用或其他类型的对象。std::future对象用于获取与std::promise对象相关联的异步操作的结果。 std::promise和std::future是C++标准库中的一
阅读全文
摘要:#1.关闭 tafnode ps -ef | grep tafnode /usr/local/app/taf/tafnode/util/stop.sh #2.启动程序gdb /usr/local/app/taf/tafnode/data/HQExtend.StockPoolAlarmServer/b
阅读全文
摘要:工作中,我们会遇到这样一种场景,就是某个函数,是被外部调用的,而且要求这个被调用的函数不能阻塞,不能太耗时,否则会影响外部的正常调用。 比如,示例中的TestA函数,它是被外部调用的,而且是一个耗时的操作,它还修改了外部的其他变量。 这时候,需要用线程来解耦,避免TestA函数因为太过耗时而阻塞。
阅读全文
摘要:一个初级的线程函数 创建10个线程,每个线程内进行计数操作,有锁. 对认识线程,有一定的帮助作用。 #include <iostream> // std::cout #include <thread> // std::thread #include <mutex> // std::mutex usi
阅读全文
摘要:1.查看线程信息 [upchina@iZbp14z6qodocy209yj5c8Z PriceAlarmServerGnn]$ ps -ef | grep "PriceAlarm" upchina 21261 19389 5 Apr15 ? 03:56:48 /usr/local/app/taf/t
阅读全文
摘要:这是堆栈信息,打印此处变量,值正常,没有非法值。 难道是多线程读写冲突了? #0 0x00007f7151d92866 in __memcpy_ssse3_back () from /lib64/libc.so.6#1 0x00007f71525e0650 in std::string::_Rep:
阅读全文
摘要:这里,只是记录自己的学习笔记。 顺便和大家分享多线程的基础知识。然后从入门到实战。有代码。 知识点来源: https://edu.51cto.com/course/26869.html C++11 实现base16,并与单线程进行性能测试 base16编码,解码,请看这篇文章:https://www
阅读全文
摘要:这里,只是记录自己的学习笔记。 顺便和大家分享多线程的基础知识。然后从入门到实战。有代码。 知识点来源: https://edu.51cto.com/course/26869.html Promise 和 Future 的原理,以及演示 1 //线程异步和通信 2 3 4 /* 5 //promis
阅读全文
摘要:这里,只是记录自己的学习笔记。 顺便和大家分享多线程的基础知识。然后从入门到实战。有代码。 知识点来源: https://edu.51cto.com/course/26869.html 条件变量应用线程通信解决线程退出时的阻塞问题 这里是重构了前面的一个工程。 xthread.h 1 #pragma
阅读全文
摘要:这里,只是记录自己的学习笔记。 顺便和大家分享多线程的基础知识。然后从入门到实战。有代码。 知识点来源: https://edu.51cto.com/course/26869.html 这里,最关键是要理解 cv.wait 在第2个参数是lambda表达式的时候,是如何处理的。 1 #include
阅读全文
摘要:这里,只是记录自己的学习笔记。 顺便和大家分享多线程的基础知识。然后从入门到实战。有代码。 知识点来源: https://edu.51cto.com/course/26869.html 使用互斥锁 + list 模拟 线程通信 1.封装线程基类 XThread 控制线程启动和停止 2.模拟消息服务器
阅读全文
摘要:这里,只是记录自己的学习笔记。 顺便和大家分享多线程的基础知识。然后从入门到实战。有代码。 知识点来源: https://edu.51cto.com/course/26869.html scoped_lock C++17 用于多个互斥体的免死锁 RAII 封装器 类似lock explicit sc
阅读全文
摘要:这里,只是记录自己的学习笔记。 顺便和大家分享多线程的基础知识。然后从入门到实战。有代码。 知识点来源: https://edu.51cto.com/course/26869.html unique_lock c++11 unique_lock C++11 实现可移动的互斥体所有权包装器 支持临时释
阅读全文
摘要:这里,只是记录自己的学习笔记。 顺便和大家分享多线程的基础知识。然后从入门到实战。有代码。 知识点来源: https://edu.51cto.com/course/26869.html C++11 支持的RAII管理互斥资源 lock_guard C++11 实现严格基于作用域的互斥体所有权包装器
阅读全文
摘要:这里,只是记录自己的学习笔记。 顺便和大家分享多线程的基础知识。然后从入门到实战。有代码。 知识点来源: https://edu.51cto.com/course/26869.html 2 利用栈特性自动释放锁 RAII2.1 什么是RAII,手动代码实现RAII(Resource Acquisit
阅读全文
摘要:这里,只是记录自己的学习笔记。 顺便和大家分享多线程的基础知识。然后从入门到实战。有代码。 知识点来源: https://edu.51cto.com/course/26869.html 共享锁,读写锁 c++14 共享超时互斥锁 shared_timed_mutexc++17 共享互斥 shared
阅读全文
摘要:这里,只是记录自己的学习笔记。 顺便和大家分享多线程的基础知识。然后从入门到实战。有代码。 知识点来源: https://edu.51cto.com/course/26869.html 1.多线程同步通信 1.1多线程状态 1.1.1线程状态说明: 初始化 ( Init ) :该线程正在创建。 就绪
阅读全文
摘要:这里,只是记录自己的学习笔记。 顺便和大家分享多线程的基础知识。然后从入门到实战。有代码。 知识点来源: https://edu.51cto.com/course/26869.html 多线程调用函数,但函数只进入一次 使用 C++11 的 call_once 函数 1 #include <iost
阅读全文