#!/usr/bin/python#coding:utf-8'''线程模型,添加锁,防止数据异常'''import threading #线程用库import timenum = 0lock = threading.Lock() # 取得锁def work1(loop):global numfor i in range(loop):# 等价于 num += 1lock.acquire() # 上锁temp = numnum = temp + 1lock.release() # 解锁print(num)def work2(loop):global numfor i in range(loop):# 等价于 num += 1lock.acquire() # 上锁temp = numnum = temp + 1lock.release() # 解锁print(num)if __name__ == '__main__':t1 = threading.Thread(target=work1,args=(1000000,))t2 = threading.Thread(target=work2, args=(1000000,))t1.start()t2.start()while len(threading.enumerate()) != 1:time.sleep(1)print(num)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。