回 帖 发 新 帖 刷新版面

主题:最近两天学习线程,有个不明白的运行结果,求教!

代码如下,运行结果会出来两行Create thread succeed!,实在不解!
------------------------------------------------------------------------
#include<stdio.h>
#include<windows.h>                                    
#include<conio.h>                                          
DWORD WINAPI ThreadProc(LPVOID lpParam); 

void main(void)
{
    HANDLE hThread;
    DWORD lpParam;
    DWORD ThreadID;
    hThread = CreateThread(NULL, 0, ThreadProc, &lpParam, 0, &ThreadID);
    if(NULL == hThread)
    {
        printf("Create thread failed!\n");
    }
    else
    {
        printf("Create thread succeed!\n");
        _getch( );
        CloseHandle(hThread);
    }
}

DWORD WINAPI ThreadProc(LPVOID lpParam)
{
    int i;
    for(i=0;i<10;i++)
        printf("%d\n",i);
    return 0;
}

回复列表 (共3个回复)

沙发

逻辑没问题

板凳

或许是因为你用的标准库中的printf不是线程安全版本的?

3 楼

安全版本??现在只发现貌似和机器有关啊,今天换台机器运行了下,只出来一次。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册