zoukankan      html  css  js  c++  java
  • 线程互斥锁

    #!/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


  • 相关阅读:
    Arrays工具类、二维数组
    Idea软件的使用
    循环语句
    方法
    objective-C 2.0
    Unix系统常用命令
    文献管理工具Zotero
    如何降低论文重复率
    SQL易忽视的细节
    数据库系统原理学习资源
  • 原文地址:https://www.cnblogs.com/fmgao-technology/p/9194584.html
Copyright © 2011-2022 走看看