妈妈做的脆皮鱼 2022-05-31 09:42 采纳率: 0%
浏览 77
已结题

c++多线程问题,设计模式中的生产者消费者相关。

问题遇到的现象和发生背景

img


题相关代码,请勿粘贴截图

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • 吕布辕门 后端领域新星创作者 2022-05-31 09:59
    关注

    有问题可以问哈,一共建3个文件,如下:

    main.cpp文件

    #include <iostream>
    #include <sstream>
    #include <fstream>
    #include <string>
    #include <thread>
     
    #include "cmdLine.h"
    #include "mutlithread.h"
     
    int main(int argc, char *argv[])
    {
        std::string inputPath = "/media/add7/E/testData/testThreads/";
        std::vector<std::string> fileNameList;
        for(std::size_t i = 0; i < 20; ++i)
        {
            std::stringstream ss;
            ss << i;
            std::string s;
            ss >> s;
            std::string tempPath = inputPath + "/" + s + ".txt";
            fileNameList.push_back(tempPath);
        }
     
        MutliThread myThread;
        myThread.initialization("/media/add7/E/testData/testThreads/out/");
     
     
        while(true)
        {
            if(MutliThread::writeFinish && MutliThread::showFinish)
                break;
     
            std::thread th1(MutliThread::readFile, &fileNameList, &myThread);
            std::thread th2(MutliThread::showFile);
            std::thread th3(MutliThread::writeFile, &myThread);
     
            std::cout << "join th1" << std::endl;
            th1.join();
            std::cout << "join th2" << std::endl;
            th2.join();
            std::cout << "join th3" << std::endl;
            th3.join();
        }
     
        std::cout << "threads exit !" << std::endl;
     
     
        return 1;
    }
     
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月7日
  • 创建了问题 5月31日