#include <windows.h>
#include <iostream.h>DWORD WINAPI Fun1Proc(
LPVOID lpParameter   // thread data
);void main()
{
HANDLE hThread1;
hThread1 = CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
CloseHandle(hThread1);
cout<<"main thread is runing"<<endl;
 
}
DWORD WINAPI Fun1Proc(LPVOID lpParameter)
{
cout<<"thread1 is running"<<endl;
return 0;
}第一次运行结果,有时为:
main thread is runing
main thread is runing
thread1 is running而有时为:
main thread is runing请大家帮助分析一下,谢谢哈

解决方案 »

  1.   

    第一次运行结果,有时为:    //子线程执行完了,主线程才结束。 但为什么会是两次?
    main thread is runing 
    main thread is runing 
    thread1 is running 而有时为: 
    main thread is runing  //子线程还未执行,主线程就结束了。两者的执行顺序不固定。
      

  2.   

    而有时为: 
    main thread is runing  //子线程还未执行,主线程就结束了。
    这个 是因为主线程获得了时间片,因此它能够运行,但是主线程执行完了main函数退出,进程也就退出了,这时还没有执行的线程都要退出
      

  3.   

    主线程的
    main thread is runing 
    main thread is runing 
    运行两次没想明白
    UP