一个C++ 存图线程,用的cv::imwrite存图,线程内只写一个imwrite的时候内存占用正常不增加;写两个imwrite的时候内存占用持续增加,直到out of memery。
一开始我觉得是内存泄漏,但是没有new什么东西,不像这个问题;后来我觉得的是线程数据堵塞,但是中间没有图片过来的时候,内存占用只会原地停住不动,不会减少,不像是数据堵塞;然后就不知道该怎么整了。

就是上图那两个cv::imwrite,写一个的时候程序正常。像上图那样写两个就内存持续上升了。请问有什么解决的办法吗
一个C++ 存图线程,用的cv::imwrite存图,线程内只写一个imwrite的时候内存占用正常不增加;写两个imwrite的时候内存占用持续增加,直到out of memery。
一开始我觉得是内存泄漏,但是没有new什么东西,不像这个问题;后来我觉得的是线程数据堵塞,但是中间没有图片过来的时候,内存占用只会原地停住不动,不会减少,不像是数据堵塞;然后就不知道该怎么整了。

就是上图那两个cv::imwrite,写一个的时候程序正常。像上图那样写两个就内存持续上升了。请问有什么解决的办法吗
没怎么看懂你这个逻辑
首先,死循环里没有if,那你的线程就永远不停的存图,什么时候停呢
其次,没有sleep,即使内存不爆炸,cpu不跑满了吗