#include <stdio.h> #include <windows.h> #include<conio.h>CRITICAL_SECTION cs;static int i;DWORD WINAPI kbinput(LPVOID pM) //把函数头换成void {int j=0;for(j=0;j<20;j++){EnterCriticalSection(&cs);printf("%d\n",i);i++;LeaveCriticalSection(&cs);}}DWORD WINAPI kbinput1(LPVOID pM) {int j=0;for(j=0;j<20;j++){EnterCriticalSection(&cs);printf("%d\n",i);i++;i++;LeaveCriticalSection(&cs);}}int main(){i=0;InitializeCriticalSection(&cs);HANDLE handle1 = CreateThread(NULL, 0, kbinput,NULL , 0, NULL);HANDLE handle2 = CreateThread(NULL, 0, kbinput1,NULL, 0, NULL);Sleep(1000);}上面是我写的一个程序,他的互斥锁不能正常运行,两个线程完全是乱来,但是我在创建线程是把CreateThread换成_beginthread,把函数头换成void就可以了,请问这是为什么?
1 回答
GCT1015
TA贡献1827条经验 获得超4个赞
控制台,还是叫终端比较好吧。帮你解决问题,首先就是父子进程通信问题,可以用文件,管道,或者socket等等,注意自己要写互斥,或加锁。然后就是关掉进程的标准输出了。代码还是要你自己写才会有进步哈~
- 1 回答
- 0 关注
- 79 浏览
添加回答
举报
0/150
提交
取消