摘要: 一、场景及线程池概念 1、大型服务器,不能每来一个客户端就创建一个线程(否则数量过多) 2、编写代码时,偶尔创建一个线程,这种写法不稳定,系统资源少的情况下,容易出现问题 线程池:把一堆线程放到一起,统一管理,这种统一管理调度,循环利用线程的方式,就叫线程池 二、实现方式 在程序启动的时候,一次性创 阅读全文
posted @ 2020-06-27 22:12 min_zhi 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 一、recursive_mutex class MyClass { public: void Fun1() { // std::lock_guard<mutex> sguard(m_mutex); // 加锁处理共享内存 std::lock_guard<recursive_mutex> sguard 阅读全文
posted @ 2020-06-27 19:41 min_zhi 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 一、windows临界区使用示例 windows临界区的作用与互斥量类似 区别: (1)windows临界区需要初始化 InitializeCriticalSection(&m_winSec); (2)进入临界区相当于lock() EnterCriticalSection(&m_winSec); ( 阅读全文
posted @ 2020-06-27 19:21 min_zhi 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 一、第一个参数 // std::async 第一个参数介绍: // (1)std::launch::deferred: 表示延迟调用,并且不创建线程 // 直到future 对象的get() 函数或wait() 调用,才会执行 MyThread 入口函数,如果没有调用,则MyThread 不会被调用 阅读全文
posted @ 2020-06-27 17:10 min_zhi 阅读(577) 评论(0) 推荐(0) 编辑
摘要: 一、future 扩展 1、future 的其他成员函数 class MyClass { public: int MyThread(int param); // 假定一个线程函数是有返回值的 }; int main() { MyClass ele; std::future<int> result = 阅读全文
posted @ 2020-06-27 15:51 min_zhi 阅读(226) 评论(0) 推荐(0) 编辑