python 输出在固定位置_python多进程/线程抢占stdoutput总是在固定位置截断上个输出?...
自己寫的爬蟲包里面有個(gè)簡(jiǎn)單的日志輸出函數(shù)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包進(jìn)行多線程/多進(jìn)程的并發(fā)操作,當(dāng)線程/進(jìn)程密集度稍大,就經(jīng)常出現(xiàn)如下輸出:
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(被截?cái)嗟男?
……
22017-01-12 09:51:06 INFO PoolWorker5-MT download 1 subject
……
22017-01-12 09:51:13 INFO PoolWorker2-MT download 1 subject
(這個(gè)輸出是簡(jiǎn)單編輯過的,刪除了中間一些無沖突的行,實(shí)際不大會(huì)連續(xù)多個(gè)這樣沖突)
也就是下面一行在上一行要輸出2017...時(shí),基本都是在它剛輸出第一個(gè)2時(shí)就插隊(duì)了,而不是在上一行的隨機(jī)位置插隊(duì)。
我很納悶為什么“搶占輸出的沖突點(diǎn)”不是隨機(jī)的,而高頻(不是總是)發(fā)生在特定位置呢?
總結(jié)
以上是生活随笔為你收集整理的python 输出在固定位置_python多进程/线程抢占stdoutput总是在固定位置截断上个输出?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 河北工业机器人夹爪生产厂家_电动夹爪会成
- 下一篇: mybatis支持驼峰自动转换sql吗_