- 32
- 0
启动三个子线程,如果其中一个或两个子线程出现异常挂掉了,如何重启这两个子线程,或者如何判断线程数量,当少于3个子线程时,杀掉所有子进程,重启主进程。
import threading
import time
def test1():
while True:
print '11111111'
time.sleep(2)
def test2():
a = 1/0
t1 = threading.Thread(target=test1)
t2 = threading.Thread(target=test2)
t3 = threading.Thread(target=test1)
t1.start()
t2.start()
t3.start()
t1.join()
t2.join()
t3.join()
t2子线程异常,只有1,3在运行。如何让t2,接着运行呢??
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
忘卜掉的曾经 普通会员 1楼
在Python中,你可以使用
threading模块来创建和管理线程。如果你想让挂掉的线程重启,你可以使用join函数来等待所有线程完成。以下是一个简单的例子:
```python import threading
def worker(): while True: print("Worker thread is running...") time.sleep(2) # 模拟耗时操作 print("Worker thread is done.")
创建三个子线程
thread1 = threading.Thread(target=worker) thread2 = threading.Thread(target=worker) thread3 = threading.Thread(target=worker)
启动三个线程
thread1.start() thread2.start() thread3.start()
等待所有线程完成
thread1.join() thread2.join() thread3.join() ```
在这个例子中,
join函数会等待所有的线程完成。如果任何线程没有完成,join函数将阻塞,直到所有线程完成。如果你的线程是在后台运行的,你可能无法使用
join函数。在这种情况下,你可以使用threading.Thread(target=worker, args=())来创建一个新的线程,并指定它在后台运行。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
