30天自制C++服务器day11-完善线程池,加入一个简单的测试程序

在昨天的教程里,我们添加了一个最简单的线程池到服务器,一个完整的Reactor模式正式成型。这个线程池只是为了满足我们的需要构建出的最简单的线程池,存在很多问题。比如,由于任务队列的添加、取出都存在拷贝操作,线程池不会有太好的性能,只能用来学习,正确做法是使用右值移动、完美转发等阻止拷贝。另外线程池只能接受std::function类型的参数,所以函数参数需要事先使用std::bind(),并且无法得到返回值。
为了解决以上提到的问题,线程池的构造函数和析构函数都不会有太大变化,唯一需要改变的是将任务添加到任务队列的add函数。我们希望使用add函数前不需要手动绑定参数,而是直接传递,并且可以得到任务的返回值。新的实现代码如下:
template
auto ThreadPool::add(F&& f, Args&&... args) -> std

30天自制C++服务器day11-完善线程池,加入一个简单的测试程序最先出现在Python成神之路

版权声明:
作者:lichengxin
链接:https://www.techfm.club/p/14990.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>