redaiconglin 发表于 2022-7-28 15:37:19

如何在threading线程创建的子类线程中使用互斥锁

import threading
import time
class SubThread(threading.Thread):
    def run(self):
      for i in range(10):
            time.sleep(1)
            msg = '子线程'+self.name+'执行,i='+str(i)
            print(msg)
if __name__ == '__main__':
    print('主线程开始')
    ts = []
    for i in range(5):
      t = SubThread()
      t.start()
      ts.append(t)
    for t in ts:
      t.join()
    print('('主线程结束')
以上代码。我想在线程运行时使用互斥锁。如何操作。谢谢各位老师能帮我看看。

hrpzcf 发表于 2022-7-28 15:49:06

锁的创建:locker=thread.Lock()
加锁:locker.acquire()
解锁:locker.release()

你可以把locker作为一个全局变量
将需要加锁的代码块写在locker.acquire()和locker.release()之间即可。如果有多个acquire、release,需要注意代码逻辑,不要写出死锁。
页: [1]
查看完整版本: 如何在threading线程创建的子类线程中使用互斥锁