本文共 1648 字,大约阅读时间需要 5 分钟。
今天小编YOYO请小伙伴们吃火锅,吃完火锅时会出现三种不同的场景。这些场景不仅考验团队的默契,也为我们理解多线程编程提供了绝佳的实例。
在编程中,主线程负责协调子线程的执行。以下场景展示了主线程与子线程的关系:
为了确保主线程退出时所有子线程也随之终止,我们可以使用setDaemon()
方法将子线程设置为守护线程。这样一来,只要主线程退出,所有子线程都会自动终止。
如果需要让主线程等待子线程完成,可以使用join()
方法。join(timeout)
还允许设置超时,确保主线程不会无限等待。
join()
的效果一致。以下代码展示了如何创建并管理多线程:
import threadingimport timedef chiHuoGuo(people): print("%s 吃火锅的小伙伴-羊肉:%s" % (time.ctime(), people)) time.sleep(1) print("%s 吃火锅的小伙伴-鱼丸:%s" % (time.ctime(), people))class myThread(threading.Thread): def __init__(self, people, name): threading.Thread.__init__(self) self.threadName = name self.people = people def run(self): print("开始线程: " + self.threadName) chiHuoGuo(self.people) print("qq交流群:226296743") print("结束线程: " + self.name)print("yoyo请小伙伴开始吃火锅:!!!")# 创建新线程thread1 = myThread("xiaoming", "Thread-1")thread2 = myThread("xiaowang", "Thread-2")# 设置守护线程thread1.setDaemon(True)thread2.setDaemon(True)# 开启线程thread1.start()thread2.start()time.sleep(0.1)print("退出主线程:吃火锅结束,结账走人")
运行上述代码可以看到以下输出:
yoyo请小伙伴开始吃火锅:!!!开始线程:Thread-1开始线程:Thread-2吃火锅的小伙伴-羊肉:xiaoming吃火锅的小伙伴-鱼丸:xiaoming吃火锅的小伙伴-羊肉:xiaowang吃火锅的小伙伴-鱼丸:xiaowang结束线程:Thread-1结束线程:Thread-2退出主线程:吃火锅结束,结账走人
start()
之前调用setDaemon(True)
,否则程序可能会被无限挂起。join()
:如果需要确保子线程完成执行,可以使用join()
方法。join()
等待所有线程完成。通过上述实例,我们可以清晰地理解多线程编程的基本原理及其应用场景。希望这些内容能为您的学习提供帮助!
转载地址:http://bdmbz.baihongyu.com/