VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 294|回复: 3

[求助] 多线程

[复制链接]
81_avatar_middle
在线会员 发表于 2019-1-12 14:27:50 | 显示全部楼层 |阅读模式
3驿站币

// brief: 启动5个线程,并且分别分给他们参数0~4,每个线程打印其参数100次。
#pragma once
#include "stdafx.h"
#include "windows.h"
DWORD WINAPI ThreadFunc(LPVOID lp);


int _tmain(int argc, _TCHAR* argv[])
{
        HANDLE hThread = INVALID_HANDLE_VALUE;
        int i;
        for (i=0; i<5; i++)
        {
                hThread = CreateThread(NULL,0,ThreadFunc,(LPVOID)i,0,NULL);
                if (hThread)
                {
                        printf("成功启动线程%d\n",i);
                }
        }
        //Sleep(5000);
        system("pause");
        return 0;
}

DWORD WINAPI ThreadFunc(LPVOID lp)
{
        for (int j=0; j<100; j++)
        {
                printf("%d%d%d%d%d%d%d%d\n",lp,lp,lp,lp,lp,lp,lp,lp);
        }

        return 0;
}

1、当线程函数ThreadFunc()中的循环次数 j<10 时,main函数中的“成功启动线程x”可以打印出来,线程的无序性在这里可以理解;
2、当线程函数ThreadFunc()中的循环次数 j<100 时,main函数中的“成功启动线程x”就不能全打印出来或者一个都打印不出来了,对这个现象不理解。。。

最佳答案

查看完整内容

printf不是线程安全的 线程里和主线程中都会抢占printf。




上一篇:项目版本不受支持
下一篇:PE文件读到后面数据都为空
75_avatar_middle
在线会员 发表于 2019-1-12 14:27:51 | 显示全部楼层
printf不是线程安全的
线程里和主线程中都会抢占printf。

01_avatar_middle
online_admins 发表于 2019-1-12 16:29:52 | 显示全部楼层
coldBro 发表于 2019-1-12 16:15
printf不是线程安全的
线程里和主线程中都会抢占printf。

赞同!
81_avatar_middle
ico_lz  楼主| 发表于 2019-1-12 16:56:55 | 显示全部楼层
coldBro 发表于 2019-1-12 16:15
printf不是线程安全的
线程里和主线程中都会抢占printf。

谢谢您的解惑!原来printf()暗藏不少杀机啊。。。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-6-20 08:14

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表