问一下这个notify的问题,就是我现在有20个线程,然后我回调的时候都要加一把锁
if self.cond.acquire():
print('线程执行结束,即将创建新线程,等待中...')
self.cond.wait()
print('收到通知,正在创建新线程...')
param = self.param_list.pop()
self.cond.notify()
self.cond.release()
self.sub_tasks(param)
print('新线程创建成功!')
我现在没有通知任意一个线程通过一把锁,如果我在外部加一把锁的话由于执行时间原因可能会出现释放了锁但是其他锁才刚刚上锁的尴尬情况,比如第一个线程被解锁了,但是其他19个线程还在运行,没有到wait这里,那么第一个线程之后所做的notify就是无用的,这种怎么解决呢,看了一下很多文中的,都是先使用notify在使用wait的也就是说该线程在锁住之前都先通知一下其他锁解开一个锁,那么像我这种情况,10个线程同时notify通知咋办,是1、会等待通知呢还是说2、其中一个notify有效其余的都无效,或者3、同时通知其他锁(10个锁)解锁