3/18/2014

Python Study, multiprocessing example source code

__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.
"""