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;
    
    }
    

      

  • 相关阅读:
    计算机网络面试小知识总结(转载)
    williamisnotme@gmail.com
    jdk1,8 HashMap
    Mybatis 为什么不要用二级缓存
    CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
    一级缓存,二级缓存
    mock单测
    java8函数式编程(转载)
    volatile解析
    JVM 技术分享(初级)
  • 原文地址:https://www.cnblogs.com/nanyangzp/p/3914220.html
Copyright © 2011-2022 走看看