关于多线程分配时间片问题
刚刚接触多线程,看了孙鑫的视频,跟着写了很小一段程序,发现了几个问题:
1.为什么程序运行结果显示:
Main Thread is running!
Main Thread is running!
Thread1 is running!
显示了两次Main Thread is running!呢
2.在不用sleep函数的情况下,为什么Thread1 is running!不显示呢,时间片是怎么分配的呀,我以为是创建了线程就分配了时间片那线程就可以运行!
#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 running!"<<endl;
Sleep(10);
}
DWORD WINAPI Fun1Proc(
LPVOID lpParameter // thread data
)
{
cout<<"Thread1 is running!"<<endl;
return 0;
}