Python 多线程

通过看博客才明白什么是单线程和多线程,它们又是如何实现的等等问题,感觉这篇文章写的特别通俗易懂,记录一下。不过作者在文章中间出现了一些问题

1
2
3
4
5
6
if __name__ == '__main__':
for t in threads:
t.setDaemon(True)
t.start()
t.join()
print "all over %s" %ctime()

虽然解决了主线程的结束导致子线程的结束,但是如果前面的进程执行速度较慢,后面的进程执行速度快,但是只有最后一个进程设置了t.join(),会导致前面的进程被主线程终止。例如:把music中sleep(7)休眠时间改为大于5,此问题就暴露出来了,当t2线程结束之后,程序结束,但是t1进程还没有执行完毕,这明显与我们的初衷不符。所以建议改成

1
2
for t in threads:
t.join()

便可避免此问题

文章目录