Python中的多线程
多线程
一个进程中有多个线程就是多线程。
一个进程中至少有一个线程,并作为程序的入口,这个就是主线程。一个进程至少有一个主进程,其他线程称为工作线程。
线程安全:线程执行一段代码,不会产生不确定的结果,那这段代码就是线程安全。(例如print()线程不安全)
线程的daemon属性
daemon属性:表示线程是否是daemon线程,这个值必须在start()之前设置,否则引发RuntimeError异常
isDaemon():是否是daemon线程
setDaemon():设置为daemon线程,必须在start方法之前设置
线程具有一个daemon属性,可以设置为Ture或False,也可以不设置,默认值为None.如果不设置daemon就取当前的daemon来设置它,主线程是Non-daemon。工作线程不设置daemon属性,则默认是daemon = False .python程序在没有活着的non-daemon线程运行时退出。
join()方法
join(timeout)是线程的标准方法之一。
一个线程中调用里那个一个线程的join方法,调用者将被阻塞,知道盗用线程终止。一个线程可以被join多次。
daemon线程的应用场景
1:后台任务,如发送心跳包、监控,这种场景最多
2:主线程工作才有用的线程,如主线程中维护的公共资源,主线程已经清理了,准备退出,而工作线程使用这些资源工作也没有意义了,一起退出最合适。
3:随时可以被终止