搜索

...haha会多次输出,qiubai只输出一次,win7,vc6.0

发布网友 发布时间:20小时前

我来回答

1个回答

热心网友 时间:2小时前

你应该建立两个进程, 这样才可以观察, 还有你的 haha 是在 main 函数里面, 只执行一次, 不会输出多次, qiubai, 在进程中, 但是 if (a>0) 也就是执行一次之后这个进程虽然没有关闭但是, 已经不可能进入输出的程序了.

#include <windows.h>
#include <stdio.h>
DWORD WINAPI myfun1(LPVOID lpParameter);
DWORD WINAPI myfun2(LPVOID lpParameter);
static HANDLE hmutex, hmutex2;
int main()
{
HANDLE h1;
h1=::CreateThread(NULL,0,myfun1,NULL,0,NULL);
HANDLE h2;
h2=::CreateThread(NULL,0,myfun2,NULL,0,NULL);
printf("Start:\n");
Sleep(5000);
::CloseHandle(h1);
::CloseHandle(h2);
return 0;
}
DWORD WINAPI myfun1(LPVOID lpParameter)
{
int a = 0;
while (1)
{
::WaitForSingleObject(hmutex,INFINITE);
a++;
printf("qiubai\n");
::ReleaseMutex(hmutex);
Sleep(200);
if(a > 15)
break;
}
return 0;
}
DWORD WINAPI myfun2(LPVOID lpParameter)
{
int b = 0;
while (1)
{
::WaitForSingleObject(hmutex2,INFINITE);
b++;
printf("haha\n");
::ReleaseMutex(hmutex2);
Sleep(300);
if(b > 10)
break;
}
return 0;
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top