子线程能杀死主线程吗?
程序代码:#include "u_def.h"
#include <windows.h>
#include <stdio.h>
#include "u_task.h"
HANDLE g_handle;
HANDLE test_entry_func(char *name)
{
int num = 5;
printf("%s\n", name);
Sleep(1000);
while(num--) // 保证子线程不退出
{
printf("%s, %d\n", __FILE__, __LINE__);
Sleep(500);
}
TASK_KillThread(g_handle); // 不能杀死主线程 ??
Sleep(500);
return NULL;
}
int main(int argc, char **argv)
{
UINT32 ret;
ret = TASK_CreateThread(NULL, NULL, test_entry_func, "zhong");
ret += 100;
printf("sakdja %d\n", ret); // 偶然被重复打印
g_handle = GetCurrentThread();
//TASK_KillThread(g_handle); // 能杀死自己
SuspendThread(g_handle);
//Sleep(16000); // 等等子线程启动
return 0;
}测试发现 HANDLE test_entry_func(char *name)程序中的 TASK_KillThread(g_handle); 不能将主线程杀死,也就是程序一直不会退出而主函数 int main(int argc, char **argv)中的 SuspendThread(g_handle);能把自己杀死,主线程不会进到Suspend状态!
这能否说明子线程不能杀死主线程?








