Python线程和semaph

2024-06-12 06:38:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python类,我们称之为a class和另一个扩展线程的MyThread。在这个a class中,我创建了MyThread类的两个对象,还有一个信号量,我将其作为MyThread类的构造函数的参数。我的问题是,如果我修改一个MyThread对象中的信号量,另一个MyThread对象会看到区别吗?例如:

class AClasss:

     def function: 
          semafor = threading.Semaphore(value=maxconnections)
          thread1 = Mythread(semafor)
          thread2 = Mythread(semafor)
          thread1.start()
          thread1.join()
          thread2.start()
          thread2.join()

 class MyThread(Thread):
     def __init__(self,semaphore):
         self.semaphore = semaphore
     def run():
        semaphore.acquire()
        "Do something here" 
        semaphore.release()

那么,thread1是否看到thread2对信号量的更改,反之亦然?


Tags: 对象self参数def线程startclassjoin
1条回答
网友
1楼 · 发布于 2024-06-12 06:38:23

这就是信号量的目的,它们允许您安全地同步并发进程。

请记住,除非释放GIL(执行IO、调用库等等),否则Python中的线程不会真正获得并发性。如果这就是您想要的,您可能需要考虑multiprocessing库。

相关问题 更多 >