exi*_*onX 6 python python-multithreading
我有一个python类,我们称之为AClass,另一个是MyThread,它扩展了Thread.在那个AClass我创建MyThread类的2个对象,我也有一个信号量,我将它作为参数提供给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()
Run Code Online (Sandbox Code Playgroud)
那么thread1是否看到了thread2所做的信号量变化,反之亦然?
这是信号量的目的,它们允许您安全地同步并发进程.
请记住,除非你发布GIL(执行IO,调用库等),否则Python中的线程不会真正获得并发性.如果这就是你想要的,你可能想要考虑这个multiprocessing库.
| 归档时间: |
|
| 查看次数: |
7152 次 |
| 最近记录: |