账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python三个子线程,如何让挂掉的线程重启?
    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=())来创建一个新的线程,并指定它在后台运行。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部