2019-04-29-重学Python16--多线程如果不加锁,会产生干扰。

time.sleep(2),如果不加上的话,线程1与2,几乎同时启动。都会对共享变量tickets进行赋值,那么有可能叠加在一起了。就不行了!
这就是产生困扰的本质原因!!!
不知道按键精灵会不会有这个困扰。。。没试过。。

import threading
import time
tickets = 0

def get_ticket():
    global tickets
    for x in range(1000000):
        tickets += 1
    print('tickets:%d'%tickets)

def main():
    for x in range(2):
        t = threading.Thread(target=get_ticket)
        t.start()
        time.sleep(2) #跟我预估的一样,如果这里加一个时间延迟,这样就可以让线程1运行结束之后,线程2开始运行。就不会
# 产生两个线程操控共享变量的事情了。。。
if __name__ == '__main__':
    main()

你可能感兴趣的:(2019-04-29-重学Python16--多线程如果不加锁,会产生干扰。)