observer1987 2016-06-21 02:54 采纳率: 0%
浏览 1102

C++ concurrency::wait() 多线程下吃内存的问题

多线程情况下,使用concurrency::wait() 会发生内存暴涨,测试代码如下

#include "stdafx.h"
#include "concrt.h"
#include
#include

using concurrency::event;

static event s_iEvent;

HANDLE s_hThread1(NULL);
HANDLE s_hThread2(NULL);

static unsigned _stdcall testThread(void* pParam)
{
while (true)
{
s_iEvent.set();
s_iEvent.wait(200);
s_iEvent.reset();
}

return 0;

}

int main()
{
s_hThread1 = (HANDLE)_beginthreadex(NULL, 0, &testThread, NULL, 0, NULL);
s_hThread2 = (HANDLE)_beginthreadex(NULL, 0, &testThread, NULL, 0, NULL);

while (1);

return 0;

}

  • 写回答

1条回答 默认 最新

  • oyljerry 2016-06-21 05:48
    关注

    你这里都是死循环反复的set,reset。会消耗系统资源

    评论

报告相同问题?

悬赏问题

  • ¥20 易康econgnition精度验证
  • ¥15 线程问题判断多次进入
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致