# -*- coding:utf-8 -*- # Thread lock 线程锁,互斥锁 # 这是针对2.X结果不准、3.x优化了以后,不会出现结果不准确的情况 # 在2.x上的解决办法就是 加线程锁 Thread lock # -*- coding: UTF-8 -*- import time import threading def addNum(): lock.acquire() global num # 在每个线程中都获取这个全局变量 #print('get num:', num) #time.sleep(1) num += 1 # 对此公共变量进行-1操作 lock.release() time.sleep(1) print('get num:', num) lock = threading.Lock() num = 0 # 设定一个共享变量 thread_list = [] for i in range(100): t = threading.Thread(target=addNum) t.start() thread_list.append(t) for t in thread_list: # 等待所有线程执行完毕 t.join() print('final num:', num)