#include <stdio.h> #include <windows.h> #include<conio.h>CRITICAL_SECTION cs;static int i;DWORD WINAPI kbinput(LPVOID pM) //把函數(shù)頭換成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);}上面是我寫的一個程序,他的互斥鎖不能正常運行,兩個線程完全是亂來,但是我在創(chuàng)建線程是把CreateThread換成_beginthread,把函數(shù)頭換成void就可以了,請問這是為什么?
1 回答

GCT1015
TA貢獻1827條經(jīng)驗 獲得超4個贊
控制臺,還是叫終端比較好吧。幫你解決問題,首先就是父子進程通信問題,可以用文件,管道,或者socket等等,注意自己要寫互斥,或加鎖。然后就是關掉進程的標準輸出了。代碼還是要你自己寫才會有進步哈~
- 1 回答
- 0 關注
- 99 瀏覽
添加回答
舉報
0/150
提交
取消