开发者社区> 问答> 正文

关于多线程的疑问,求各位大神解答

using namespace std;
DWORD WINAPI Thread_accept (PVOID lParam)
{
cout<<"进入线程"<<endl;
return 0;
}
int main()
{
WSADATA wsaData;
WSAStartup (MAKEWORD (2, 2) ,&wsaData);
HANDLE Thread;

Thread = CreateThread ( NULL ,0 ,Thread_accept ,NULL ,0 ,NULL);

return 0;
}

为什么最后输出的时候子线程并不执行输出语句?
求各位大神解答

展开
收起
a123456678 2016-03-24 11:22:41 1968 0
1 条回答
写回答
取消 提交回答
  • main函数中,仅仅是通过createthread()创建一个线程,之后的动作就是return,所以不输出子线程的内容是很正常的。
    若是你想让子线程输出内容,需要在main和子线程之间通信上做文章,
    比如,

    1. 定时探测子线程是否退出,若已退出,main再退出。
    2. 声明一个全局变量,当子线程执行时赋值为1 ,main中判断该全局变量是否已变为1,若是,则退出。
      还有很多其他方法!

    希望我的解答,对你有所启发!

    2019-07-17 19:12:25
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Android插件化-从入门到"放弃" 立即下载
多线程 立即下载
Android开发之多进程架构 立即下载