# include <windows.h>
# include <iostream>
DWORD WINAPI Fun1Proc(LPVOID lpParameter);
DWORD WINAPI Fun2Proc(LPVOID lpParameter);
using namespace std;
int index=0;
int tickets=100;
HANDLE hMutex;
void main()
{ HANDLE hThread1,hThread2;
hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
hThread2=CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);
CloseHandle(hThread1); HANDLE hMutex;
hMutex=CreateMutex(NULL,FALSE,NULL);
Sleep(4000);
}
DWORD WINAPI Fun1Proc(LPVOID lpParameter)
{ while(TRUE)
{
WaitForSingleObject(hMutex,INFINITE);
if(tickets>0)
{
cout<<"thread1 sell ticket:"<<tickets--<<endl;
}
else
break;
ReleaseMutex(hMutex);
}
return 0;
}
DWORD WINAPI Fun2Proc(LPVOID lpParameter)
{
while(TRUE)
{
WaitForSingleObject(hMutex,INFINITE);
if(tickets>0)
{
cout<<"thread2 sell ticket:"<<tickets--<<endl;
}
else
break;
ReleaseMutex(hMutex);
}
return 0;
}这个程序是孙鑫VC++视频教程里的。我是菜鸟,为什么和他得到的结果不一样呢?我这里很乱thread2 sell ticket:thread1 sell ticket:10099thread2 sell ticket:thread1 sell ticket:9897thread1 sell ticket:thread2 sell ticket:9695thread1 sell ticket:thread2 sell ticket:9493thread1 sell ticket:thread2 sell ticket:9292thread1 sell ticket:thread2 sell ticket:9089thread1 sell ticket:88
thread2 sell ticket:87
thread1 sell ticket:86
thread2 sell ticket:85
thread1 sell ticket:thread2 sell ticket:8483thread1 sell ticket:thread2 sell ticket:8281thread1 sell ticket:thread2 sell ticket:8079thread2 sell ticket:thread1 sell ticket:7877thread2 sell ticket:thread1 sell ticket:7675thread1 sell ticket:thread2 sell ticket:7473thread1 sell ticket:thread2 sell ticket:7271thread1 sell ticket:thread2 sell ticket:7069thread1 sell ticket:thread2 sell ticket:6867thread1 sell ticket:thread2 sell ticket:6665thread2 sell ticket:thread1 sell ticket:6463thread2 sell ticket:thread1 sell ticket:6261thread2 sell ticket:thread1 sell ticket:6059thread2 sell ticket:58
thread1 sell ticket:thread2 sell ticket:5756thread2 sell ticket:thread1 sell ticket:5554thread1 sell ticket:thread2 sell ticket:5352thread2 sell ticket:thread1 sell ticket:5150thread2 sell ticket:thread1 sell ticket:4948thread1 sell ticket:thread2 sell ticket:4746thread2 sell ticket:thread1 sell ticket:4544thread2 sell ticket:thread1 sell ticket:4342thread1 sell ticket:thread2 sell ticket:4140thread1 sell ticket:thread2 sell ticket:3938thread1 sell ticket:thread2 sell ticket:3736thread2 sell ticket:thread1 sell ticket:3534thread2 sell ticket:thread1 sell ticket:3332thread2 sell ticket:31
thread1 sell ticket:30
thread2 sell ticket:thread1 sell ticket:2928
我的系统是windowxp cpu是双核的,是不是是双核问题?
# include <iostream>
DWORD WINAPI Fun1Proc(LPVOID lpParameter);
DWORD WINAPI Fun2Proc(LPVOID lpParameter);
using namespace std;
int index=0;
int tickets=100;
HANDLE hMutex;
void main()
{ HANDLE hThread1,hThread2;
hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
hThread2=CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);
CloseHandle(hThread1); HANDLE hMutex;
hMutex=CreateMutex(NULL,FALSE,NULL);
Sleep(4000);
}
DWORD WINAPI Fun1Proc(LPVOID lpParameter)
{ while(TRUE)
{
WaitForSingleObject(hMutex,INFINITE);
if(tickets>0)
{
cout<<"thread1 sell ticket:"<<tickets--<<endl;
}
else
break;
ReleaseMutex(hMutex);
}
return 0;
}
DWORD WINAPI Fun2Proc(LPVOID lpParameter)
{
while(TRUE)
{
WaitForSingleObject(hMutex,INFINITE);
if(tickets>0)
{
cout<<"thread2 sell ticket:"<<tickets--<<endl;
}
else
break;
ReleaseMutex(hMutex);
}
return 0;
}这个程序是孙鑫VC++视频教程里的。我是菜鸟,为什么和他得到的结果不一样呢?我这里很乱thread2 sell ticket:thread1 sell ticket:10099thread2 sell ticket:thread1 sell ticket:9897thread1 sell ticket:thread2 sell ticket:9695thread1 sell ticket:thread2 sell ticket:9493thread1 sell ticket:thread2 sell ticket:9292thread1 sell ticket:thread2 sell ticket:9089thread1 sell ticket:88
thread2 sell ticket:87
thread1 sell ticket:86
thread2 sell ticket:85
thread1 sell ticket:thread2 sell ticket:8483thread1 sell ticket:thread2 sell ticket:8281thread1 sell ticket:thread2 sell ticket:8079thread2 sell ticket:thread1 sell ticket:7877thread2 sell ticket:thread1 sell ticket:7675thread1 sell ticket:thread2 sell ticket:7473thread1 sell ticket:thread2 sell ticket:7271thread1 sell ticket:thread2 sell ticket:7069thread1 sell ticket:thread2 sell ticket:6867thread1 sell ticket:thread2 sell ticket:6665thread2 sell ticket:thread1 sell ticket:6463thread2 sell ticket:thread1 sell ticket:6261thread2 sell ticket:thread1 sell ticket:6059thread2 sell ticket:58
thread1 sell ticket:thread2 sell ticket:5756thread2 sell ticket:thread1 sell ticket:5554thread1 sell ticket:thread2 sell ticket:5352thread2 sell ticket:thread1 sell ticket:5150thread2 sell ticket:thread1 sell ticket:4948thread1 sell ticket:thread2 sell ticket:4746thread2 sell ticket:thread1 sell ticket:4544thread2 sell ticket:thread1 sell ticket:4342thread1 sell ticket:thread2 sell ticket:4140thread1 sell ticket:thread2 sell ticket:3938thread1 sell ticket:thread2 sell ticket:3736thread2 sell ticket:thread1 sell ticket:3534thread2 sell ticket:thread1 sell ticket:3332thread2 sell ticket:31
thread1 sell ticket:30
thread2 sell ticket:thread1 sell ticket:2928
我的系统是windowxp cpu是双核的,是不是是双核问题?
解决方案 »
- csliderctrl 如何让鼠标滚轮滚一下走一格
- ListCtrl 问题.
- Windows 网络编程第二版 Winsock Design 中的图看不成 麻烦发一下
- char* p="123";与 char* p=new char[3];p="123";有什么区别?不都是让p指向“123”吗?那new还有必要吗?
- 这个小游戏谁能完全解开??
- 编译问题求助
- 各位大虾:对话框中如何用一个数组对应多个编辑框
- 寻求牌类游戏源代码
- ActiveX控件程序怎样变成非控件形式即普通软件那样的程序?
- 请教高手,CListCtrl的问题,
- 谁有比较稳定TCP文件传输的例子(能够适应cdma无线环境)
- Insert Into的问题
在其次
这种结果很乱是正常的结果.