今天在学习多线程编程,由于多个线程是同时启动的,所以输出也出现在了同一行,怎样才能换行输出呢?
输出结果是这样的:
*** 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看来就不是一条语句,而是几句语句的和:
在这样的情况下,线程之间就会相互打断输出,所以我改变了输出语句,用这样替代:
在这样的情况下,输出就正常了。
给输出语句加个锁。
logging
每个线程把需要输出的内容都放到Queue()中,专门启动一个线程从Queue()中读取数据并输出到屏幕上。