zoukankan      html  css  js  c++  java
  • VC6.0 多线程输出乱序问题

    今天尝试编写多线程最简单的例子

    #include "stdafx.h"
    #include "windows.h"
    #include <iostream>
    using namespace std;
    
    DWORD WINAPI Fun1Proc(LPVOID lpParamer);
    
    int main(int argc, char* argv[])
    {
    	HANDLE hThread;
    	hThread=CreateThread(NULL,0,Fun1Proc,NULL,CREATE_SUSPENDED,NULL);
            ResumeThread(hThread);
            cout<<"Main Thread...."<<endl;
    	CloseHandle(hThread);
    	Sleep(20);
    	
    	return 0;
    }
    
    DWORD WINAPI Fun1Proc(LPVOID lpParamer)
    {
             cout<<"thread1 is running."<<endl;
             return 0;
    
    }
    

     但输出结果不是自己想要的,他输出的乱序字符串。更改MD也不能解决,后来考虑是否是cout的输出问题。结果证实确实是vc6对C++标准支持的不完善。将cout换做printf的输出就没问题。。。

    #include "stdafx.h"
    #include "windows.h"
    #include <iostream>
    using namespace std;
    
    DWORD WINAPI Fun1Proc(LPVOID lpParamer);
    
    int main(int argc, char* argv[])
    {
    	HANDLE hThread;
    
    	hThread=CreateThread(NULL,0,Fun1Proc,NULL,CREATE_SUSPENDED,NULL);
        ResumeThread(hThread);
        printf("Main Thread....");
    	CloseHandle(hThread);
    	
    	Sleep(20);
    	
    	return 0;
    }
    
    DWORD WINAPI Fun1Proc(LPVOID lpParamer)
    {
       printf("thread1 is running.");
       return 0;
    
    }
    

      

  • 相关阅读:
    Linux JDK安装
    Redis集群搭建
    Struts2 中添加 Servlet
    js小技巧:数组去重
    修改Request 中的数据
    JAVA 图形界面开发基础详解
    JAVA 类和对象基础知识详解
    Java 类的继承详解
    C++ 大学课堂知识点总结
    数据库简单练习 建表+select
  • 原文地址:https://www.cnblogs.com/nanyangzp/p/3914220.html
Copyright © 2011-2022 走看看