我想问问主线程与子线程的关系.
比如一个程序,a为主线程,从a中生成子线程b1,b2,从b1中生成子线程c1,c2.
1,此时,如果父线程b1运行完毕,子线程c1仍在运行,此时c1会否因为b1的消灭而被迫消灭,还是c1会继续运行?
2,如果主线程a消灭,是否b1,b2,c1,c2也会强迫被消灭?
3,主线程a是否是进程中第一个创建的线程同时也是最后一个消灭的线程?
比如一个程序,a为主线程,从a中生成子线程b1,b2,从b1中生成子线程c1,c2.
1,此时,如果父线程b1运行完毕,子线程c1仍在运行,此时c1会否因为b1的消灭而被迫消灭,还是c1会继续运行?
2,如果主线程a消灭,是否b1,b2,c1,c2也会强迫被消灭?
3,主线程a是否是进程中第一个创建的线程同时也是最后一个消灭的线程?
个人意见
2. 子线程退出不会影响主线程(做特殊处理的除外)
3. 运行main(wMain,WinMain等)的线程为主线程,其他线程均为子线程
#include <windows.h>
#include <iostream>
#include <process.h>
using namespace std;unsigned __stdcall ThreadProc(LPVOID)
{
while(TRUE)
{
cout<<"thread is running"<<endl;
Sleep(2000);
}
return 0;
}int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{ HANDLE hThread = (HANDLE)_beginthreadex(NULL, 0, &ThreadProc, NULL, 0, NULL);
CloseHandle(hThread); ExitThread(0);
// .... 后面的代码不会执行
return 0;
}
同意
如果一个线程a只是生成另一个线程b,而不管其死活,那么a被灭,b一样在
但是如果主线程(进程)被干掉了 ,其它也就都没了
以上个人看法,
2,主线程就是与进程直接关联的那个线程,如果主线程结束了,进程都没了其他的当然会结束.
3,是