自己写的爬虫包里面有个简单的日志输出函数logging,没做任何线程安全方面的处理,其核心如下:

log = "%s %s\t%s-%s\t%s | %s" % (time.strftime("%Y-%m-%d %X"), logtypeName, pname, tname, workName, log)

print log.decode("utf-8")

显然,正常输出一般为下面形式:

2017-01-12 09:51:01 INFO PoolWorker2-MT download 1 subject

碰到的问题就是,不论我用multithreading、multiprocessing包进行多线程/多进程的并发操作,当线程/进程密集度稍大,就经常出现如下输出:

22017-01-12 09:51:05 INFO PoolWorker5-MT download 1 subject

017-01-12 10:05:59 INFO PoolWorker-3-MT download 1 subject(被截断的行)

……

22017-01-12 09:51:06 INFO PoolWorker5-MT download 1 subject

……

22017-01-12 09:51:13 INFO PoolWorker2-MT download 1 subject

(这个输出是简单编辑过的,删除了中间一些无冲突的行,实际不大会连续多个这样冲突)

也就是下面一行在上一行要输出2017...时,基本都是在它刚输出第一个2时就插队了,而不是在上一行的随机位置插队。

我很纳闷为什么“抢占输出的冲突点”不是随机的,而高频(不是总是)发生在特定位置呢?

python 输出在固定位置_python多进程/线程抢占stdoutput总是在固定位置截断上个输出?...相关推荐

  1. python开多少进程合适_python多进程基础

    python中的多进程编程方式和多线程非常相似,几乎可以说只是换了一些函数,有了之前讲过的多线程基础,很多地方我就只展示一些代码,在涉及到差别的地方再着重说明. 本文分为如下几个部分事先说明 最简单的 ...

  2. python怎么让游戏倒计时_Python如何让倒计时效果的在固定区域刷新

    time_remain是实现倒计时效果,但是如何把它固定在一行的指定区域呢? 不干扰其他区域的显示呢? 最后输出这样的信息,最右边的是总时长,但是倒计时效果出现在最左边,如果不预留 ' '*5 空格会 ...

  3. python进程池调用实例方法_Python 多进程并发操作中进程池Pool的实例

    在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间.当被操作对象数目不大时,可以直接利用multiprocessing中的Process ...

  4. win python 判断 所有 子进程 结束_python 多进程 进程池子进程结束怎么获取

    匿名用户 1级 2016-10-26 回答 在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间.当被操作对象数目不大时,可以直接利用mu ...

  5. python字符串查找位置_python中怎么返回指定查找字符的位置

    展开全部 Python编程中对字符串进行搜索查找,并返回字符位e69da5e887aa62616964757a686964616f31333337396231置,案例代码如下:# multiple s ...

  6. win python 判断 所有 子进程 结束_python 多进程如何终止或重启子进程?

    这里有个完整的实例 MD5值重复文件多进程检查工具 测试过程中经常发现MD5值相同的图片.之前没有用并发,检查过程经常需要一个小时,现在改成多进程.一般3分钟以内可以完成处理(48核). 此模式也是自 ...

  7. python竖着展示诗_Python把一段字符串用“右起竖排”的古文格式输出

    例如: 静 夜 思   李 白 床 前 明 月 光 , 疑 似 地 上 霜 . 举 头 望 明 月 , 低 头 思 故 乡 . 结果是 低 举 疑 床 静 头 头 似 前 夜 思 望 地 明 思 故 ...

  8. python 3d图如何改变视角_python – 改变3D图垂直(z)轴的位置(Matplotlib)?

    我需要类似的东西:在两边画Zaxis.感谢@crayzeewulf的答案我来到了解决方法(左,右或双方): 首先根据需要绘制您的3d,然后在调用show()之前,使用简单地覆盖draw()方法的Wra ...

  9. python图片拼接成特定图案_Python 把几张图片拼接成一张图片,并且写上文字

    # 要拼接的图片名称是1,2,3...这样有顺序的 # 把当前目录下的所有图片从上到下拼接成一张图片 # 该图片的宽度是图片中最宽图片的宽度 # 不改变原来图片的大小,所以拼接后有的地方存在未填充的地 ...

最新文章

  1. [C#项目开源] MongoDB 可视化管理工具 (2011年10月-至今)
  2. 建设IPTV电视系统是否有必要?
  3. c++ vector学习
  4. 03-谷歌浏览器安装Sence
  5. 量子计算机美国华裔科学家,量子计算机很神?18岁华裔少年用经典计算机算得一样快...
  6. CCS10.2.0安装教程
  7. javascript跑马灯效果
  8. 计算机命令提示符的使用,命令提示符(电脑系统命令提示符的打开方法)
  9. chm转换成txt的url顺序问题
  10. ERD Online 4.0.0新版本震撼来袭,超强国产免费在线数据建模系统
  11. 学习规律及其在学习中的应用
  12. with dlz mysql 条件_BIND+DLZ+MYSQL
  13. python弧度制转换 三角函数 反三角函数 双曲 反双曲 sin cos tan asin acos atan asinh acosh atanh atanh2
  14. python util
  15. 【2019-CVPR-3D人体姿态估计】Weakly-Supervised Discovery of Geometry-Aware Representation for 3D HPE..
  16. Spring启动自动执行方法
  17. [附源码]Nodejs计算机毕业设计全国乡村振兴信息服务平台Express(程序+LW)
  18. 最新Linux内核本地DoS漏洞CVE-2017-8064 4.10.12之前版本均受影响 还有一个CVE-2017-7979...
  19. 青山老农PK三只松鼠:“淘品牌”烧流量梦碎,社群电商步入验证大年
  20. 小米5手机照片误删如何恢复

热门文章

  1. 网站添加自己公司的地图(使用的百度地图)时只显示一个空白框
  2. JVM中锁优化,偏向锁、自旋锁、锁消除、锁膨胀
  3. Netty原理和使用
  4. Java模块化之路 —— OSGI介绍
  5. 聊聊并发(一)——深入分析Volatile的实现原理
  6. 玩转CSDN博客之自定义博客栏目,根据需要定制栏目
  7. 程序员面试题精选100题(23)-跳台阶问题[算法]
  8. Day 6:在 Java 虚拟机上使用 Grails 进行快速 Web 开发
  9. 保存/恢复cxGrid布局
  10. 整数的无符号编码和有符号编码