码迷,mamicode.com
首页 > 编程语言 > 详细

线程互斥锁

时间:2018-06-18 11:54:28      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:[]   append   python   mutex   /usr   rom   pytho   encoding   CQ   

#!/usr/bin/env python
# encoding: utf-8  
# Date: 2018/6/18
from threading import Thread, Lock
import time

n = 100


def task():
    global n
    mutex.acquire()  # 阻止其他99个线程在这里等待,保证数据安全
    temp = n
    time.sleep(0.1)  # 启动一个线程,睡0.1秒足够100个线程全部启动
    n = temp - 1  # 100个线程全部修改为99
    mutex.release()


if __name__ == ‘__main__‘:
    mutex = Lock()
    t_l = []
    time1 = time.time()
    for i in range(100):  # 一个进程内开了100个线程
        t = Thread(target=task)
        t_l.append(t)
        t.start()

    for i in t_l:
        t.join()  # 保证主线程执行完毕
    time2 = time.time()
    time3 = time2-time1
    print(‘主‘, n, time3)  # 主 0 10.06277322769165


线程互斥锁

标签:[]   append   python   mutex   /usr   rom   pytho   encoding   CQ   

原文地址:https://www.cnblogs.com/fmgao-technology/p/9194584.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!