一.问题:
在多线程中使用cout输出时,会出现输出混乱情形。
代码示例如下:
- #include <windows.h>
- #include <iostream.h>
- DWORD WINAPI Fun1Proc(LPVOID lpParameter); //线程入口函数声明
- void main()
- {
- HANDLE hThread1; //线程句柄
- hThread1 = CreateThread(NULL, 0, Fun1Proc, NULL, 0, NULL); //创建线程
- CloseHandle(hThread1); //关闭新线程的句柄
- Sleep(1);
- cout<<"main thread is running"<<endl;
- }
- //线程1入口函数
- DWORD WINAPI Fun1Proc(LPVOID lpParameter)
- {
- cout<<"thread1 is running"<<endl;
- return 0;
- }
执行结果:main thread is running输出了两次