python 输出在固定位置_python多进程/线程抢占stdoutput总是在固定位置截断上个输出?...
自己寫的爬蟲包里面有個簡單的日志輸出函數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总是在固定位置截断上个输出?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 河北工业机器人夹爪生产厂家_电动夹爪会成
- 下一篇: mybatis支持驼峰自动转换sql吗_