終了時に共有整数を減らす必要があるいくつかのワーカープロセスがあります。
Threadsafetyを確保するためにロックを試みましたが、どういうわけか機能していません。プログラムの最後にワーカーを出力しても4が出力されます
http://www.laurentluce.com/posts/python-threads-synchronization-locks-rlocks-semaphores-conditions-events-and-queues/を読みました
workers = 4
lock = threading.Lock()
def workerStopped(id,lock):
lock.acquire()
global workers
print "Decrease workers (" + str(workers) + ")for #" + str(id)
workers = workers - 1
print "Now " + str(workers) + " Workers"
lock.release()
class Worker(Process):
def __init__(self, queue,ident,lock):
super(Worker, self).__init__()
self.queue= queue
self.idstr= str(ident)
self.lock = lock
print "Ident" + self.idstr
......
workerStopped(self.idstr,self.lock)
....
for i in range(4):
Worker( request_queue,i,lock ).start()