多线程加锁并发任务

# coding=utf-8
import threading
import time


mutex = threading.Lock()
class TestTreading(threading.Thread):
    def __init__(self,id):
        threading.Thread.__init__(self)
        self.id =id
    """重写父类thread的run()方法,此方法一旦生成线程对象自动调用"""
    def run(self):
        """开始上锁"""
        mutexFlage = mutex.acquire()
        """判断上锁ok,你们同时开始在规定时间考试,都来做加法运算,给你们参数给的不同避免抄袭做自己的结果"""
        if mutexFlage:
            for i in range(3):
                print(self.add(),self.getName(),time.asctime())


        """事情完了解除锁让别的线程用,哪个线程需要资源可以用了,本线程用完了,不然就blocked阻塞,形成死锁了"""
        mutex.release()
    def add(self):
        x=self.id
        for i in range(101):
            x=x+i
        return x
if __name__ =="__main__":
    threads=[TestTreading(i)for i in range(10)]
    for t in threads:
        t.start()
    for t in threads:
        t.join()
    print("main thread closed")

 多线程加锁并发任务

 

 

上一篇:Python之多线程学习【2】:Quene功能


下一篇:Ocelot API网关的实现剖析