摘要: 概要 本文中,作者针对 简单的线程池 和 简单的线程池(二) 介绍的两个线程池分别进行了并发测试,并基于收集的测试数据,对结果进行了分析。 目的 本测试是为了确认非阻塞式线程池与阻塞式线程池的生存性,以及两者在吞吐量上的差异,为改进线程池提供数据支撑。 【注】这里的差异以非阻塞式的吞吐量为基准计算得 阅读全文
posted @ 2021-12-08 10:27 green-cnblogs 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 概要 笔者在 简单的线程池 中采用了非阻塞的(nonblocking)线程同步方式,在此文中笔者将采用阻塞的(blocking)线程同步方式实现相同特性的线程池。 本文中不再赘述与 简单的线程池 相同的内容。如有不明之处,请参考该博客。 实现 以下代码给出了此线程池的实现,(blocking_sha 阅读全文
posted @ 2021-11-30 15:02 green-cnblogs 阅读(256) 评论(0) 推荐(0) 编辑
摘要: ◆ 问题 环境:macOS Mojave (版本10.14.6), clang-1001.0.46.4 (-std=c++11) 代码中存在重载(overloaded)的自由函数(也称全局函数)或类成员函数,当开发者尝试用 std::bind 绑定其中一个时,会提示如下编译错误: error: no 阅读全文
posted @ 2021-11-26 14:20 green-cnblogs 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 概要 此线程池拥有一个被所有工作线程共享的任务队列。线程池用户提交的任务,被线程池保存在任务队列中,工作线程从任务队列中获取任务并执行。 任务是可拥有返回值的、无参数的可调用(callable)对象,或者是经 std::bind 绑定了可调用对象及其参数后的调用包装器。具体而言可以是 自由函数(也称 阅读全文
posted @ 2021-11-25 14:13 green-cnblogs 阅读(329) 评论(0) 推荐(2) 编辑