今天在学习多线程编程,由于多个线程是同时启动的,所以输出也出现在了同一行,怎样才能换行输出呢?
输出结果是这样的:
*** MULTIPLE THREADS
startingstartingstarting fibfacsum at:at:at: Tue Dec 08 22:30:43 2015Tue Dec 08 22:30:43 2015Tue Dec 08 22:30:43 2015
facsum finished at:finished at: Tue Dec 08 22:30:44 2015Tue Dec 08 22:30:44 2015
我想要的结果是这样的:
starting fib at: Sat Nov 22 09:51:39 2014
starting fac at:Sat Nov 22 09:51:39 2014
starting sum at:Sat Nov 22 09:51:39 2014
那我应该怎样做呢?
首先感謝各位的回答,然而這一些方式對於我這個Python初學者來言還是不太懂。
我用了別的方法解決了這個問題。
我想到線程之間的切換是在一個線程執行幾句另一個線程接著執行幾句這樣交替循環的,而一條語句之內是不會被打斷的。
原來的錯誤是在於我將輸出語句寫成了這樣的形式:
其實這個在Python看來就不是一條語句,而是幾句語句的和:
在這樣的情況下,執行緒之間就會互相打斷輸出,所以我改變了輸出語句,用這樣取代:
在這樣的情況下,輸出就正常了。
給輸出語句加個鎖定。
記錄
每個執行緒把需要輸出的內容都放到Queue()中,專門啟動一個執行緒從Queue()讀取資料並輸出到螢幕上。