一.问题:

     在多线程中使用cout输出时,会出现输出混乱情形。

     代码示例如下:

 
  
  1. #include <windows.h>  
  2. #include <iostream.h>  
  3.  
  4.  
  5. DWORD WINAPI Fun1Proc(LPVOID lpParameter);  //线程入口函数声明  
  6.  
  7. void main()  
  8. {  
  9.     HANDLE hThread1; //线程句柄  
  10.     hThread1 = CreateThread(NULL, 0, Fun1Proc, NULL, 0, NULL); //创建线程  
  11.     CloseHandle(hThread1); //关闭新线程的句柄  
  12.     Sleep(1);  
  13.     cout<<"main thread is running"<<endl;  
  14. }  
  15.  
  16. //线程1入口函数  
  17. DWORD WINAPI Fun1Proc(LPVOID lpParameter)  
  18. {  
  19.     cout<<"thread1 is running"<<endl;  
  20.     return 0;  
  21. }  
  22.  

        执行结果:main thread is running输出了两次