window下多线程分时操作问题 新手....
程序代码:
//总共5个进程 主进程输出1 Printer_ThreadOne输出2,3,4 Printer_ThreadTwo输出5 #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <windowsx.h> #include <stdio.h> // 宏定义 //////////////////////////////////////////////////////////////////////////////// #define MAX_NUM 3 // 原型 ///////////////////////////////////////////////////////////////////////////// DWORD WINAPI Printer_ThreadOne(LPVOID data); DWORD WINAPI printer_ThreadTwo(LPVOID data); // 函数 ////////////////////////////////////////////////////////////////////////////// DWORD WINAPI Printer_ThreadOne(LPVOID data) { for (int index = 0; index < 25; index++) { printf("one线程%d\n",(int)data+1); //加一 Sleep(500); } return((DWORD)data); } DWORD WINAPI printer_ThreadTwo(LPVOID data) { for(int index = 0; index < 25; index++) { printf("two线程:%d\n",(int)data+2); //加二 Sleep(500); } return((DWORD)data); } // 主函数 ////////////////////////////////////////////////////////////////////////////////// int main(void) { HANDLE thread_handle[MAX_NUM+1]; DWORD thread_id[MAX_NUM+1]; printf("开始线程\n"); //创建3个线程 for (int index = 0; index < MAX_NUM; index++) { thread_handle[index] = CreateThread(NULL, 0, Printer_ThreadOne, (LPVOID)(index+1), 0, &thread_id[index]); } //创建第四的线程 thread_handle[3] = CreateThread(NULL, 0, printer_ThreadTwo, (LPVOID)3, 0, &thread_id[3]); //主进程//////////////////////////////////////////// for (index=0; index<75; index++) { printf("主线程%d\n",1); Sleep(500); } //关闭句柄/////////////////////////////////////// for (index=0; index<MAX_NUM; index++) CloseHandle(thread_handle[index]); CloseHandle(thread_handle[ 3]); printf("\n结束了线程\n"); return 0; }在输出的时候 按理是循环输出 怎么开始是是乱输出的啊? 在运行了一定时间才循环,那么开始一段时间分时操作是随机选择线程的吗? 还是我的电脑有问题啊? 就高手解答啊. 百度了一下.....未果