提示:文章
文章目录
前言
前期疑问:
本文目标:
一、背景
今天看多线程以及线程池这边的文章,感觉有点混乱,这边按照时间顺序整理一下吧
二、梳理顺序
首先我一开始看mapview的代码涉及到c++多线程,然后自己就找了些多线程的文章看了看,其中就有这篇文章。C++11多线程编程,然后基于这篇文章我整理了自己的文章,线程池初步了解,这篇文章就是按照参考的教程整理的。这篇文章的线程池一开始没发现问题,后面使用了大量的文件进行验证,发现读写文件数量会不一致。所以这个文章里的线程池代码是有问题的,我尝试修改,但是没有成功。
后面的文章就是c++多线程。C++多线程,这篇文章整体内容就是我自己又摸索了一下多线程。
第一部分是发现在codeblock上运行多线程需要库,在linux上安装了POISX可以简便执行。
第二部分是自己使用上一篇文章中的多线程代码像mapview一样多线程读文件。并和单线程读文件的对比了时长。另外自己还验证了线程锁的使用。
第三部分是验证自己一个疑问,就是多线程如果使用类的静态成员,是会累计静态成员变量的值吗?答案是会的。所以最好是一个线程一个类对象,独立使用类的成员变量。这涉及到了线程函数是静态的,如果调用类成员函数。文中也做了表述。
前两篇文章主要是围绕之前看的文章代码的, 问题是那个代码有问题,读大量文件时会出现文件确实的情况,打印文件读取信息就会发现。(刚才试了找了下之前的验证代码,没找到,下次可以再试下)
下面就是看的b站的视频总结的文章。
C++11 多线程编程-小白零基础到手撕线程池。这篇文章也即是目前项目使用的多线程方式。但是使用的是lamda写法不好理解,找c++写的代码没有找到。
三、未完待续
总结
未完待续