通过看博客才明白什么是单线程和多线程,它们又是如何实现的等等问题,感觉这篇文章写的特别通俗易懂,记录一下。不过作者在文章中间出现了一些问题123456if __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进程还没有执行完毕,这明显与我们的初衷不符。所以建议改成12for t in threads: t.join()
便可避免此问题