日志
-
2017-07-10 22:46
-
前言
阅读全文»分类:C++|回复:0|浏览:451
最近做公司项目遇到一个问题,加载20万的日志文件,解析后写入数据库中。做完后发现读文件、解析、写入数据依次搞下来,速度实在是太慢。
所以学习用多线程的来完成这个工作,考虑用生产者消费者模式来完成。
设计思路:
写一个数据存储类,提供“存入数据”、“取走数据”两个接口,两个接口保证一次只能有一个线程去操作数据。数据满时阻塞“存入数据”接口,等待数据被取走,同理数据空时,阻塞“取走数据”接口,等待存入数据。
具体实现:
存储数据使用QQueue<T>类,线程同步使用C++11 标准库 std::mutex、std::con ..