社区
C++ 语言
帖子详情
为什么多线程下使用cout输出不能在屏幕见到?
yunzhongjian
2004-12-31 11:21:00
在多线程的环境下,如果多个线程输出,使用std的cout输出字符到屏幕时,有时输出根本不会出现在屏幕上,但程序的确执行过cout输出语句了。改使用printf就没有问题了。 为什么std的cout会这样呢?请大家赐教!
...全文
1020
18
打赏
收藏
为什么多线程下使用cout输出不能在屏幕见到?
在多线程的环境下,如果多个线程输出,使用std的cout输出字符到屏幕时,有时输出根本不会出现在屏幕上,但程序的确执行过cout输出语句了。改使用printf就没有问题了。 为什么std的cout会这样呢?请大家赐教!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sct
2005-09-07
打赏
举报
回复
学习
idler
2005-01-10
打赏
举报
回复
cout << flush;?
不确定。SGI的库是线程安全的。
step_by_step
2005-01-10
打赏
举报
回复
你把cout换成cerr就可以了,不要用缓冲了
gateh
2005-01-10
打赏
举报
回复
cout << flush才强制把缓冲内容写到屏幕上. 试试看.
yunzhongjian
2005-01-10
打赏
举报
回复
To questionboy():“可能是你其它的地方出錯了”
我可以十分肯定:我的程序肯定是运行到cout语句了,并继续往下运行了,
在cout语前或后加上printf语句都能正常的看到输出。那么你指的出错还有其它什么的吗?
yunzhongjian
2005-01-10
打赏
举报
回复
To0 snow810211(阳光): cerr 也一样
yunzhongjian
2005-01-10
打赏
举报
回复
To questionboy():“某個線程可能對屏慕的buffer沒有寫的權限”,我在同一进程里面开的线程也会对屏幕的BUFFER没有写权限吗?
我的环境是: redhat linux 9.0 g++ 编译, GTK+-2.0。
pacman2000
2005-01-04
打赏
举报
回复
加了缓冲刷新的话,肯定是可以显示的,应该是你的程序出了什么问题。
xunfengxxx
2005-01-04
打赏
举报
回复
cout 不是线程安全的 要靠自己去线程同步 比较麻烦
printf是线程安全的 也就是自己做了线程同步的处理了
学习
questionboy
2005-01-04
打赏
举报
回复
不知道你是在甚麼環境下運行的,但是我可以肯定的告訴你,一定是可以顯示的,能否顯示與多線程沒有關係,可能是你其它的地方出錯了,仔細找找看吧,我碰到最多的問題(不加鎖)不過是線程之間同時要顯示信息,造成顯示的信息錯亂(混在一起,或者僅僅某一個信息被忽略).提示你一下,你的某個線程可能對屏慕的buffer沒有寫的權限,造成你的困惑
snow810211
2005-01-04
打赏
举报
回复
cerr试试看
whoho
2005-01-04
打赏
举报
回复
标准中没要求标准库的线程安全性,但是很多库实现已经加入了
这个支持,比如VC.net附加的库, 还有SGI版本
cout 没有输出更`可能是缓冲区的刷新问题
yunzhongjian
2005-01-04
打赏
举报
回复
我用了一个全局锁来锁住cout,即在cout前加锁,在endl后解锁,但是有些地方的输出仍然看不到。
piaozi2003() : cout << endl; 已经清除了缓冲
allen_zhaozhencn
2004-12-31
打赏
举报
回复
应该是thread safe的问题.STL的容器与算法都不是线程安全的.
piaozi2003
2004-12-31
打赏
举报
回复
清除缓冲
beyondtkl
2004-12-31
打赏
举报
回复
cout 不是线程安全的 要靠自己去线程同步 比较麻烦
printf是线程安全的 也就是自己做了线程同步的处理了
lu1172101275
2004-12-31
打赏
举报
回复
没碰过
oyljerry
2004-12-31
打赏
举报
回复
cout线程不是安全的,用printf
黑客帝国的数字雨--絕笹の負卿
黑客帝国的数字雨--絕笹の負卿,很好很好 黑客帝国的数字雨--絕笹の負卿,很好很好
C++绘制爱心
C++绘制各种爱心的例程,有绘制好的图片以及源码,每个源码都跑过,可以直接运行
课程设计-基于C++的火车票管理系统 控制台源码.zip
黑框控制台源码,适用于课程设计或者实验作业参考
使用
。将压缩包里的cpp文件导入即可。
C++程序设计:基于c++编写的图书管理系统项目源码已录几万条图书信息.zip
C++程序设计:基于c++编写的图书管理系统项目源码 有增删改查图书,增删改查用户,借还图书等功能,已录入超过4.6万条的图书信息
C++贪吃蛇控制台
C++完成的贪吃蛇游戏,有注释,欢迎学习
C++ 语言
65,189
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章