__author__ = 'mare'
from multiprocessing import Process, Lock, Value
import time
def run(name, l, c):
print( name, 'process is created.')
fixed = 0
while 1:
l.acquire()
if c.value>0:
c.value -= 1
l.release()
fixed += 1
time.sleep(0.1)
else:
l.release()
print(name, 'fixed', fixed, 'defects')
break
if __name__=='__main__':
lock = Lock()
count = Value('i', 10)
dev_list = []
for name in ['Mare1', 'Mare2', 'Mare3']:
dev = Process( target=run, args=(name, lock, count))
dev_list.append(dev)
dev.start()
for dev in dev_list:
dev.join()
print('All processes are finished.')
#out put is..
"""
Mare1 process is created.
Mare2 process is created.
Mare3 process is created.
Mare2 fixed 3 defects
Mare3 fixed 3 defects
Mare1 fixed 4 defects
All processes are finished.
All processes are finished.
All processes are finished.
"""