由“Qt程序运行一段时间后崩溃”引发的“opancv库中Mat::clone()函数”在多线程下的注意事项
2020-12-13 15:16
标签:cat 准备 按钮 auto image this 访问 _id ret 由“Qt程序运行一段时间后崩溃”引发的“opancv库中Mat::clone()函数”在多线程下的注意事项 标签:cat 准备 按钮 auto image this 访问 _id ret 原文地址:https://www.cnblogs.com/neoLin/p/11577345.html
inline
Mat Mat::clone() const
{
Mat m;
copyTo(m);
return m;
}
// 噢 原来是调用的cv::copyTo方法,等等,上面有个const,这下明白了,在拷贝的时候是不允许修改值的,如果正在拷贝,此时相机写入线程正好获取了相机数据,准备写入,这时就发生了冲突。总之读写不能同时进行。
//那么就是用互斥量将两者互斥,
#include
void QtGuiApplication1::on_btnThread_clicked()
{
auto myThread = [] {
while (1) {
if (!temp_forSave.empty()) {
Mat lalala = temp_forSave.clone();
std::cout
文章标题:由“Qt程序运行一段时间后崩溃”引发的“opancv库中Mat::clone()函数”在多线程下的注意事项
文章链接:http://soscw.com/essay/34962.html