首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >thread.start_new_thread vs threading.Thread.start

thread.start_new_thread vs threading.Thread.start
EN

Stack Overflow用户
提问于 2011-05-04 19:01:23
回答 2查看 5.2K关注 0票数 9

python中的thread.start_new_threadthreading.Thread.start有什么不同?

我注意到,当调用start_new_thread时,只要调用线程终止,新线程就会终止。threading.Thread.start正好相反:调用线程等待其他线程终止。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-04 19:11:07

thread模块是Python的低级线程API。不推荐直接使用它,除非你真的需要。API模块是一个构建在thread之上的高级threadingThread.start方法实际上是使用thread.start_new_thread实现的。

Threaddaemon属性必须在调用start之前设置,指定线程是否应该是守护进程。当没有活动的非守护进程线程时,整个Python程序就会退出。缺省情况下,daemonFalse,因此该线程不是守护进程,因此该进程将等待其所有非守护进程线程退出,这是您正在观察的行为。

P.S. start_new_thread真的是非常低级的。它只是Python核心线程启动器的一个薄薄的包装器,该启动器本身调用操作系统线程生成函数。

票数 11
EN

Stack Overflow用户

发布于 2011-05-04 19:05:19

查看threading.Thread.daemon标志-基本上,只要没有非守护进程线程在运行,解释器就会终止。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5882362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档