我有一个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对信号量的更改,反之亦然?
这就是信号量的目的,它们允许您安全地同步并发进程。
请记住,除非释放GIL(执行IO、调用库等等),否则Python中的线程不会真正获得并发性。如果这就是您想要的,您可能需要考虑
multiprocessing
库。相关问题 更多 >
编程相关推荐