刚开始学多线程就遇难题了

tjieLy 2004-10-23 05:21:10
小弟可以说是刚开始学多线程的问题,可能有些思想转变不过来请指教:
#include<iostream.h>
#include<process.h>
#include<windows.h>
#include<stdio.h>
BOOL repeat=TRUE;
DWORD WINAPI MyThread1(LPVOID lpParameter){
while(repeat){
printf("How are you?\n");
Sleep(1);
}
DWORD exitCode;
ExitThread(exitCode);
return 0;
}
DWORD WINAPI MyThread2(LPVOID lpParameter){
while(repeat){
printf("very well!\n");
Sleep(1);
}
DWORD exitCode;//作用是用来保存退出码
ExitThread(exitCode);
// printf("Thread Exit Code:XXXXXXXXXXXXXXXXXXXX");
return 0;
}
//DWORD WINAPI KillThread(LPVOID lpParameter){
// repeat=FALSE;
// return 0;
//}
int main(int argc,char *argv[]){
HANDLE handle1,handle2;
DWORD dw1,dw2;
handle1=CreateThread(NULL,0,MyThread1,NULL,0,&dw1);
if(handle1==NULL){
printf("create thread 1 failed!\n");
return -1;
}
handle2=CreateThread(NULL,0,MyThread2,NULL,0,&dw2);
if(handle2==NULL){
printf("create thread 2 failed!\n");
return -1;
}
Sleep(1000);
// handle3=CreateThread(NULL,0,KillThread,NULL,0,&dw3);
// if(handle3==NULL){
// printf("create thread 3 failed!\n");
// return -1;
// }
CloseHandle(handle1);
CloseHandle(handle2);
// CloseHandle(handle3);
return 0;
}
问题是这样的:
在多线程的创建中,是否就调用线程函数?
在这里我将线程handle3去掉后,按照我的理解,应该是进入一个死循环,可是运行了有限的次数后,就结束了,不太明白原因?
在线程函数中,ExitThread()执行了吗,为什么我加上printf("Thread Exit Code:XXXXXXXXXXXXXXXXXXXX");后没有输出?


...全文
168 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjieLy 2004-10-23
  • 打赏
  • 举报
回复
谢谢大家的热心,真的对我帮助很大,再次感谢
nuaawenlin 2004-10-23
  • 打赏
  • 举报
回复
up
Kudeet 2004-10-23
  • 打赏
  • 举报
回复
推荐看看核心编程
lujunliang 2004-10-23
  • 打赏
  • 举报
回复
哎呀,完了一步,没占到2楼~~:)
lujunliang 2004-10-23
  • 打赏
  • 举报
回复
上面的两个线程确实都进了死循环,也就是说
printf("Thread Exit Code:XXXXXXXXXXXXXXXXXXXX");这行语句绝对不回执行的.
两个线程运行了有限次后结束的原因是主线程的终结,从而导致辅助线程的终结.
main函数的return代表这主线程的终结.
Mr_Ldh 2004-10-23
  • 打赏
  • 举报
回复
CreateThread时,可以控制是否立即运行;
main函数(主线程)1秒钟后退出了,其它线程会自动结束;
要结束线程,直接return就可以了,当然也可以用ExitThread(),ExitThread()后面的语句不会被执行。

15,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧