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;
}在输出的时候 按理是循环输出 怎么开始是是乱输出的啊? 在运行了一定时间才循环,那么开始一段时间分时操作是随机选择线程的吗? 还是我的电脑有问题啊? 就高手解答啊. 百度了一下.....未果










