::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ShwoMainDlg, NULL, NULL, NULL);
DWORD WINAPI ShwoMainDlg(LPVOID pPraram) {
::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ShwoMainDlg2, NULL, NULL, NULL);
return 0;
}
DWORD WINAPI ShwoMainDlg2(LPVOID pPraram) {
::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ShwoMainDlg3, NULL, NULL, NULL);
return 0;
}
DWORD WINAPI ShwoMainDlg3(LPVOID pPraram) {
::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ShwoMainDlg4, NULL, NULL, NULL);
return 0;
}
如题
首先不建议怎样做, 也不能这样做, 在 C++ 中,线程是基于操作系统提供的底层线程机制实现的,因此在线程嵌套的层数上受到操作系统对线程数量的限制。具体而言,操作系统会给每个进程分配一定的资源,例如内存、文件句柄、线程等,不同操作系统的分配数量不同。如果嵌套线程的层数过多,操作系统可能会出现资源不足的情况,导致创建新线程失败。另外还要注意到,嵌套线程的层数过多也会对程序性能产生影响。每个线程都需要占用一定的系统资源,包括线程堆栈、上下文切换等,嵌套线程会增加这些开销的成倍数,导致系统性能下降。因此,在实际应用中,不建议无限套娃地创建线程,需要根据实际情况合理设计线程嵌套的层数,并且合理地管理线程的生命周期,在某个线程不再需要时及时释放相关资源,避免产生资源浪费和线程泄露问题。