C++ 线程问题

如下我的代码,是按书上抄的,运行结果为什么不对啊。我注释了Sleep(10),线程的内容不应该显示的,怎么会这样呢?#include<windows.h>#include... 如下我的代码,是按书上抄的,运行结果为什么不对啊。我注释了Sleep(10),线程的内容不应该显示的,怎么会这样呢?
#include<windows.h>
#include<iostream>
using namespace std;

void main()
{
HANDLE hThread1;
hThread1 = CreateThread(NULL, 0, Fun1Proc, NULL, 0, NULL);
CloseHandle(hThread1);
cout << "mian thread is runing" << endl;
Sleep(10);
}

DWORD WINAPI Fun1Proc(LPVOID lpParameter)
{
cout << "thread1 is runing" << endl;
return 0;
}
展开
 我来答
儒雅的春男
2015-06-17
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
没错呀 你在主线程里睡了10S子线程打印语句可没停,你把SLEEP写到那个线程里。
追问
我注释后也是这结果啊。而且你看,我主函数里面输出完语句后有换行的endl,也没有输出来,直接就把线程函数的内容显示上了。sleep貌似根本不起作用的
追答
线程是交替执行的,你没有设置先后,你看你的字符串下面不是有个空行么,这么操作结果就是不确定的,就会出现换行不再正确的地方,你可以在线程函数里sleep(500),这样的结果你在看看。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式