本人vc菜鸟,请各位大侠拔刀相助!
一个主线程,一个子线程,两个线程输出的字符串混到了一起,怎么回事?

解决方案 »

  1.   

    就是下面的代码   在别的机器上可以搞赢,但就是我的机器很郁闷,输出的字符串混在一起  呜呜~~~
    #include<windows.h>
    #include<iostream>
    using namespace std;DWORD WINAPI FunProc(LPVOID IpParamenter);void main()
    {
    HANDLE hThread;
    hThread=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
    CloseHandle(hThread);
    cout<<"main thread is running"<<endl;
    }DWORD WINAPI FunProc(LPVOID IpParamenter)
    {
    cout<<"Thread1 is running"<<endl;
    }
      

  2.   

    那为什么加一个  getch();就ok了?   
      

  3.   

    void main() 

    cout < <"main thread is running" < <endl; 
    HANDLE hThread; 
    hThread=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL); 
    CloseHandle(hThread); 
    }线程互斥问题! 主线程先输出就ok了
      

  4.   

    5楼得比较没有意义,getch也许只是改变了执行得速度
    原理这么清晰,就不要去比较那么多东西了
    不加控制得并发执行,结果是“不可预期”得,也就是啥结果都有可能
      

  5.   

    每次在输出的时候加上下面这句话!
    cout.flush();
      

  6.   

    10楼:没有用得,endl是自动调用这个得。楼主的问题原因很清楚了,就是必须并发控制