Python Thread Loop方法不会继续执行代码

奥耶

我有两个相同类的实例,并且全局声明了一个Lock变量。

此类具有.run()方法,该方法创建一个线程,该线程将运行同一类中的另一个方法(这两个方法位于问题的末尾)

我的代码中有一些测试打印语句,如下所示:

[main.py]

first = className()
second = className()
print('test before first')
first.run()
print('test before second')
second.run()

我的输出是:

[输出]

test before first
first Thread lock acquired by first
first Thread lock released (will sleep now)
first Thread lock acquired by first
first Thread lock released (will sleep now)

并且永远都不会到达这一行,它应该在这里启动另一个线程,该线程将使用互斥锁“ threading.Lock()”来争夺资源:

[main.py]

print('test before second')

运行的类方法:

[className.py]

def run(self):
    tr = threading.Thread(target= self.update())
    tr.start()
    return True

def update(self):
    while(True):
        try:
            global lock
            lock.acquire()
            print('first Thread lock acquired by ' + self.name)
            #do stuff
            lock.release()
            print('lock release')
            sleep(2)
        except:
            sleep(5)
奥耶

在run Method的第二行中,目标值应为不带括号的方法名称。

def run(self):
    tr = threading.Thread(target= self.update)
    # Instead of:  
    tr = threading.Thread(target= self.update())
    tr.start()

区别在于,在原始变量中,tr变量将等待方法的结果,并且永远不会完成。如果是正确的,tr将开始运行,程序将继续。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python多处理,代码继续执行?

来自分类Dev

如果未调用方法thread.stop()或thread.join(),python中的线程何时死亡?

来自分类Dev

异步方法不会继续执行以下代码

来自分类Dev

Thread.sleep()不会暂停执行

来自分类Dev

Thread.sleep()不会暂停执行

来自分类Dev

Python threading.thread.start()不会将控制权返回给主线程

来自分类Dev

为什么threading.Thread通过阻止python 2.5中的执行来同步运行?

来自分类Dev

在哪里可以找到 python 低级线程 API _thread 扩展模块的源代码?

来自分类Dev

暂停事件直到第二天,然后继续执行其余的python代码

来自分类Dev

Python:在继续执行代码流之前,等待requests_futures.sessions完成

来自分类Dev

问答游戏:python tkinter 在退出之前等待单击按钮继续执行代码

来自分类Dev

Thread in Python : class attribute (list) not thread-safe?

来自分类Dev

使python代码在异常后继续

来自分类Dev

JavaFX:Worker Thread需要JavaFX App Thread才能继续

来自分类Dev

Thread.currentThread()。join()之后无法执行代码

来自分类Dev

std :: thread何时执行线程?

来自分类Dev

std :: thread的构造和执行

来自分类Dev

停止python中的threading.Thread

来自分类Dev

什么是Python _thread模块中的Lock?

来自分类Dev

Python Thread()删除换行符?

来自分类Dev

Python Thread类变量为空

来自分类Dev

停止python中的threading.Thread

来自分类Dev

带有 await Promise.all() 的代码不会继续执行

来自分类Dev

while loop or Thread.sleep()?

来自分类Dev

与python并行执行代码

来自分类Dev

threading.Thread.start()方法的执行时间取决于Thread目标方法

来自分类Dev

暂停执行Maya python,然后继续

来自分类Dev

在不久的将来在PYthon中执行代码的简便方法

来自分类Dev

std :: thread调用类方法

Related 相关文章

  1. 1

    Python多处理,代码继续执行?

  2. 2

    如果未调用方法thread.stop()或thread.join(),python中的线程何时死亡?

  3. 3

    异步方法不会继续执行以下代码

  4. 4

    Thread.sleep()不会暂停执行

  5. 5

    Thread.sleep()不会暂停执行

  6. 6

    Python threading.thread.start()不会将控制权返回给主线程

  7. 7

    为什么threading.Thread通过阻止python 2.5中的执行来同步运行?

  8. 8

    在哪里可以找到 python 低级线程 API _thread 扩展模块的源代码?

  9. 9

    暂停事件直到第二天,然后继续执行其余的python代码

  10. 10

    Python:在继续执行代码流之前,等待requests_futures.sessions完成

  11. 11

    问答游戏:python tkinter 在退出之前等待单击按钮继续执行代码

  12. 12

    Thread in Python : class attribute (list) not thread-safe?

  13. 13

    使python代码在异常后继续

  14. 14

    JavaFX:Worker Thread需要JavaFX App Thread才能继续

  15. 15

    Thread.currentThread()。join()之后无法执行代码

  16. 16

    std :: thread何时执行线程?

  17. 17

    std :: thread的构造和执行

  18. 18

    停止python中的threading.Thread

  19. 19

    什么是Python _thread模块中的Lock?

  20. 20

    Python Thread()删除换行符?

  21. 21

    Python Thread类变量为空

  22. 22

    停止python中的threading.Thread

  23. 23

    带有 await Promise.all() 的代码不会继续执行

  24. 24

    while loop or Thread.sleep()?

  25. 25

    与python并行执行代码

  26. 26

    threading.Thread.start()方法的执行时间取决于Thread目标方法

  27. 27

    暂停执行Maya python,然后继续

  28. 28

    在不久的将来在PYthon中执行代码的简便方法

  29. 29

    std :: thread调用类方法

热门标签

归档