zoukankan      html  css  js  c++  java
  • 互斥锁的改进

     1 import time
     2 from threading import Thread,Lock
     3 #定义全局变量num
     4 num=0
     5 #创建一把互斥锁
     6 lock = Lock()
     7 def test1():
     8     global num
     9     '''
    10     在两个线程中都调用上锁的方法,则这两个线程就会抢着上锁,
    11     如果有1方成功上锁,那么导致另外一方会堵塞(一直等待)直到这个锁被解开
    12     '''
    13     for i in range(100000):
    14         lock.acquire()#上锁
    15         num+=1
    16         lock.release() 
    17     print('test1输出num:',num)
    18 
    19 def test2():
    20     global num
    21     for i in range(100000):
    22         lock.acquire()  # 上锁
    23         num+=1
    24         lock.release()
    25     print('test2输出num:',num)
    26 
    27 if __name__=='__main__':
    28     t1 = Thread(target=test1)
    29     t2 = Thread(target=test2)
    30     t1.start()
    31     t2.start()
    32     t1.join()
    33     t2.join()
    1 test1输出num:181043
    2 test2输出num:200000
    正是江南好风景
  • 相关阅读:
    Linux环境变量$PATH
    grep
    echo命令
    ip命令
    浅析Linux下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc文件
    shell脚本4种执行方式
    /proc路径
    tr命令
    Linux命令cut
    前端论坛网站知识
  • 原文地址:https://www.cnblogs.com/monsterhy123/p/12682830.html
Copyright © 2011-2022 走看看