永发信息网

c++中多个hThread函数可以并发执行吗

答案:2  悬赏:0  手机版
解决时间 2021-01-28 20:35
  • 提问者网友:却不属于对方
  • 2021-01-28 00:46
我这里有个很简单的多线程 但是不知道怎么错了 求指点,新手自学刚开始
#include
#include
using namespace std;

DWORD WINAPI Fun1(LPVOID lpParamter)
{
while(1) { cout<<"哈哈哈"<}
DWORD WINAPI Fun2(LPVOID lpParamter)
{
while(1) { cout<<"呼呼呼"<}
DWORD WINAPI Fun3(LPVOID lpParamter)
{
while(1) { cout<<"嘻嘻嘻"<}
int main()
{
HANDLE hThread1 = CreateThread(NULL, 0, Fun1, NULL, 0, NULL);
CloseHandle(hThread1);
HANDLE hThread2 = CreateThread(NULL, 0, Fun2, NULL, 0, NULL);
CloseHandle(hThread2);
HANDLE hThread3 = CreateThread(NULL, 0, Fun3, NULL, 0, NULL);

CloseHandle(hThread3);

return 0;
}
最佳答案
  • 五星知识达人网友:胯下狙击手
  • 2021-01-28 02:07
其实是不能并发执行的,因为只有一个CPU嘛。(假设是单核的CPU的话)
你创建的这几个线程,哪个先执行、哪个后执行,是随机的,无法确定。而且一个正在执行时,也有可能被另一个打断,所以执行结果是不可预料的,无所谓对错。
问题在于,你在main函数里创建完三个子线程后,应该sleep一段时间。否则,很有可能子线程还没得到机会执行,main函数就退出了。
全部回答
  • 1楼网友:迷人又混蛋
  • 2021-01-28 03:27
或许可以。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯