3/18/2014

Python Study, Threading example source code

#Thread.start() //thread start
#Thread.run()   //thread main function run
#Thread.join([timeout]) //wait until thread end


from threading import Thread, Lock
import time

count = 10
lock = Lock()



class developer(Thread):

    def __init__(self, name):   #initialize
        Thread.__init__(self)
        self.name = name
        self.fixed = 0

    def run(self):              #thread main function


        global count
        while 1:
            #lock.acquire()      #lock  -> Untie comment, error occurs, I don't know why error occurs...
            if count > 0:
                count -= 1
                #lock.rlease()   #unlock -> Untie comment, error occurs, I don't know why error occurs...
                self.fixed += 1
                time.sleep(0.1)
            else:
                #lock.release()  #unlock -> Untie comment, error occurs, I don't know why error occurs...
                break




dev_list = []
for name in ['Mare1', 'Mare2', 'Mare3']:
    dev = developer(name)       #create thread
    dev_list.append(dev)
    dev.start()                 #thread start


for dev in dev_list:
    dev.join()                  #wait
    print(dev.name, 'fixed', dev.fixed)


#Mare1 fixed 3
#Mare2 fixed 4
#Mare3 fixed 3

No comments:

Post a Comment