python多线程join/setDaemon

Posted yzg-14

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python多线程join/setDaemon相关的知识,希望对你有一定的参考价值。

 1 import threading, time
 2 
 3 class Test():
 4     def test1(self):
 5         print("--")
 6         time.sleep(3)
 7         print("----")
 8 
 9 
10     def test2(self):
11         print("==")
12         time.sleep(3)
13         print("====")
14 
15     def run(self):
16         threads = []
17         t = threading.Thread(target=self.test1)
18         t2 = threading.Thread(target=self.test2)
19         threads.append(t)
20         threads.append(t2)
21         for t in threads:
22             t.setDaemon(True)  # 将主线程设置为(被)守护线程,主线程结束,子线程也随之结束
23             t.start()
24             #t.join()
25         for t in threads:
26             t.join()
27         print("主线程结束")
28         # 1.不join,同时执行,主线程结束,等待,执行
29         # 2. t.start()的for循环内join,会阻塞主进程,且下一个子线程被迫等待执行
30         # 3. 另起一个for循环join,同时执行,等待,执行,主线程结束
31 
32 
33 if __name__ == "__main__":
34     c = Test()
35     c.run()

以上是关于python多线程join/setDaemon的主要内容,如果未能解决你的问题,请参考以下文章

Java室友打一把王者就学会了多线程

python3.7多线程代码不执行?

有没有易懂的 Python 多线程爬虫代码

python 多线程

请教python如何开启多线程?

如何理解python的多线程编程