c++如何写多线程,分一个线程来实时更新结果,具体如下
voidtask(){//多线程while(true){...不断的计算,返回一个value}}intmain(){while(true){获取多线程计算的value然后...
void task() {//多线程
while(true) {
...不断的计算,返回一个value
}
}
int main() {
while(true) {
获取多线程计算的value
然后继续执行其他操作
}
}
我是想一直更新value,而主线程执行完一次循环后,会获取最新的value值继续执行下去,多线程用来一直更新值,刚学多线程,不知道该怎么写,能指导一下吗,谢谢 展开
while(true) {
...不断的计算,返回一个value
}
}
int main() {
while(true) {
获取多线程计算的value
然后继续执行其他操作
}
}
我是想一直更新value,而主线程执行完一次循环后,会获取最新的value值继续执行下去,多线程用来一直更新值,刚学多线程,不知道该怎么写,能指导一下吗,谢谢 展开
1个回答
展开全部
#include <windows.h>
#include <process.h>
#include <stdio.h>
volatile HANDLE waitForStart;
volatile HANDLE waitForResult;
volatile int result;
DWORD APIENTRY task(LPVOID* p)
{
for(;;)
{
WaitForSingleObject(waitForStart, INFINITE);
++result;
SetEvent(waitForResult);
}
return 0;
}
int main()
{
HANDLE thread;
result = 0;
waitForStart = CreateEvent(0, FALSE, FALSE, 0);
waitForResult = CreateEvent(0, FALSE, FALSE, 0);
thread = (HANDLE)_beginthreadex(0, 0, task, 0, 0, 0);
CloseHandle(thread);
for(;;)
{
SetEvent(waitForStart);
WaitForSingleObject(waitForResult, INFINITE);
printf("%d\t", result);
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询