gme*_*mon 9 python multithreading new-operator
thread.start_new_thread和threading.Thread.startpython有什么区别?
我注意到start_new_thread调用时,一旦调用线程终止,新线程就会终止.threading.Thread.start相反:调用线程等待其他线程终止.
Eli*_*sky 11
该thread模块是Python的低级线程API.除非您确实需要,否则不建议直接使用.该threading模块是一个建立在其上的高级API thread.该Thread.start方法实际上是使用thread.start_new_thread.
该daemon属性Thread必须在调用之前设置start,指定线程是否应该是一个守护进程.当没有剩下活着的非守护程序线程时,整个Python程序退出.默认情况下,daemon是False,因此该线程不是守护进程,因此进程将等待其所有非守护进程线程退出,这是您正在观察的行为.
PS start_new_thread真的很低级.它只是Python核心线程启动器的一个薄包装器,它本身称为OS线程生成函数.