代码之家  ›  专栏  ›  技术社区  ›  deamon

将“thread.start_new_thread(…)”转换为新的线程API

  •  5
  • deamon  · 技术社区  · 15 年前

    当我用老蟒蛇的时候 thread API一切正常:

    thread.start_new_thread(main_func, args, kwargs)
    

    threading API进程,当线程退出时,它将挂起 sys.exit(3) :

    threading.Thread(target=main_func, args=args, kwargs=kwargs).start()
    

    如何将代码转换为新的线程API?

    context .

    2 回复  |  直到 15 年前
        1
  •  8
  •   suzanshakya    12 年前

    这种行为是因为 thread.start_new_thread 创建线程 daemon 模式while threading.Thread non-daemon 模式。
    开始 螺纹 在守护进程模式下,您需要使用 .setDaemon 方法:

    my_thread = threading.Thread(target=main_func, args=args, kwargs=kwargs)
    my_thread.setDaemon(True)
    my_thread.start()
    
        2
  •  2
  •   adw    15 年前

    当所有非守护进程线程退出时,程序将退出。你可以做你的副手 Thread daemon 属性到 True .

    sys.exit 具有 os._exit