小编Gag*_*eep的帖子

如何在C++中停止线程执行

我在主程序中创建了一个线程,一旦主程序终止,线程执行就必须停止。我reader.join();用来终止线程执行。但它并没有停止执行。

我尝试使用下面提到的代码,我正在使用thread.join();函数,但它无法终止线程。在主程序之后,我的线程也继续执行。

#include <algorithm>
#include <array>
#include <atomic>
#include <mutex>
#include <queue>
#include <cstdint>
#include <thread>
#include <vector>

using namespace std;
using namespace std::chrono;

typedef pair<int, Mat> pairImage;

class PairComp {
public:
    bool operator()(const pairImage& n1, const pairImage& n2) const
    {
        if (n1.first == n2.first)
            return n1.first > n2.first;
        return n1.first > n2.first;
    }
};

int main(int argc, char* argv[])
{
    mutex mtxQueueInput;
    queue<pairImage> queueInput;
    int total = 0;
    atomic<bool> bReading(true);
    thread reader([&]() {
        int idxInputImage …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading mutex pthreads c++11

1
推荐指数
1
解决办法
4498
查看次数

标签 统计

c++ ×1

c++11 ×1

multithreading ×1

mutex ×1

pthreads ×1