# -*- coding:utf-8 -*-
import threading
import time
from time import sleep, ctime
g_num = 0
# 创建互斥锁,默认不上锁
mutex = threading.Lock()
def func1(num):
global g_num
for i in range(num):
mutex.acquire() # 上锁
g_num += 1
mutex.release() # 解锁
print('--func1--g_num:%d' % g_num)
def func2(num):
global g_num
for i in range(num):
mutex.acquire()
g_num += 1
mutex.release()
print('--func2--g_num:%d' % g_num)
if __name__ == "__main__":
t1 = threading.Thread(target=func1, args=(100000,))
t1.start()
t2 = threading.Thread(target=func2, args=(100000,))
t2.start()
while True:
length = len(threading.enumerate())
print('now the all thread:%d' % length)
if length <= 1:
break
sleep(1)
print('the result--%d' % g_num)
python中线程使用与全局变量加锁
最新推荐文章于 2022-11-29 16:30:35 发布