新线程阻止主线程

镇痛药
from threading import Thread
class MyClass:
    #...
    def method2(self):
        while True:
            try:
                hashes = self.target.bssid.replace(':','') + '.pixie'
                text = open(hashes).read().splitlines()
            except IOError:
                time.sleep(5)
                continue
        # function goes on ...

    def method1(self):
        new_thread = Thread(target=self.method2())
        new_thread.setDaemon(True)
        new_thread.start()  # Main thread will stop there, wait until method 2 

        print "Its continues!" # wont show =(
        # function goes on ...

有可能这样做吗?new_thread.start()主线程等待完成之前,为什么会发生这种情况?我没有在任何地方提供new_thread.join()。

守护进程不能解决我的问题,因为我的问题是主线程在新线程启动后立即停止,而不是因为主线程执行结束。

用户名

如所写,对Thread构造函数的调用 调用self.method2而不是引用它。替换target=self.method2()target=self.method2,线程将并行运行。

请注意,由于线程的不同,由于GIL,CPU计算可能仍会序列化

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档