python线程锁有几种锁_python线程中加锁范围是越大越好还是越小越好呢?

把锁放在循环外面

from threading import Thread, Lock

import time

num = 0

def test1():

global num

# 上锁

mutex.acquire()

for i in range(1000000):

num += 1

# 解锁

mutex.release()

print("--test1--num=%d" % num)

def test2():

global num

mutex.acquire()

for i in range(1000000):

num += 1

mutex.release()

print("--test2--num=%d" % num)

start_time = time.time() # 开始时间

# 创建一把互斥锁,默认没有上锁

mutex = Lock()

p1 = Thread(target=test1)

p1.start()

# time.sleep(3) # 取消屏蔽之后 再次运行程序,结果会不一样,,,为啥呢?

p2 = Thread(target=test2)

p2.start()

p1.join()

p2.join()

end_time = time.time() # 结束时间

print("num = %

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值