dou_uod 2022-12-08 18:04 采纳率: 66.7%
浏览 16
已结题

openmp并发问题

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

Qt写的重命名程序,在使用OpenMP加速文件复制时出错

遇到的现象和发生背景,请写出第一个错误信息

使用OpenMP的时候,循环次数不够。

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
QFileInfo info;
        #pragma omp parallel for
        for(int i=0;i<list.size();++i){
            info=list.at(i);
            QFile file(info.filePath());
            if(info.fileName()=="."||info.fileName()==".."){
                continue;
            }
            if(info.isDir()){  /*如果是文件夹则递归调用本函数*/
                if(dstPath!=srcPath) dstDir.mkdir(info.fileName());
                changeFileName(info.filePath(), dstPath + "/" + info.fileName(),selectWay);
                continue;
            }
            QString fileName=info.baseName();
            QString fileSuffix=info.completeSuffix();
            if(selectBack==1){
                fileName.append(addString);
            }
            else{
                fileName.insert(0,addString);
            }
            fileName.append("."+fileSuffix);
            if(dstPath!=srcPath) file.copy(dstPath+"/"+fileName);
            else {
                bool success=QFile::rename(dstPath+"/"+info.fileName(),dstPath+"/"+fileName);

                if(!success){
                    qDebug()<<"replace fail";
                    done=0;
                }
                else{
                    qDebug()<<"success";
                }
            }
            emit add();
            }

运行结果及详细报错内容

本来是想看能加速多少,结果发现遇到文件夹递归调用时,有个文件夹用时0ms,就点进去看,发现并没有复制。重复试验了几次发现偶尔会发生。(之前维护了一个程序,把许多图片拼接起来,也是会少拼几个图片,当时不知道bug在哪,现在看来应该是openMP的问题)

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

完全不知道错误在哪

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

我的代码错误在哪呢?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月16日
    • 修改了问题 12月8日
    • 创建了问题 12月8日

    悬赏问题

    • ¥15 高通uboot 打印ubi init err 22
    • ¥20 PDF元数据中的XMP媒体管理属性
    • ¥15 R语言中lasso回归报错
    • ¥15 网站突然不能访问了,上午还好好的
    • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
    • ¥15 semrush,SEO,内嵌网站,api
    • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
    • ¥15 振荡电路,ADS仿真
    • ¥15 关于#c语言#的问题,请各位专家解答!
    • ¥15 这个如何解决详细步骤