2019-04-29 - Python 16-다중 스레드를 재학할 때 잠그지 않으면 방해가 발생할 수 있습니다.

579 단어
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()

좋은 웹페이지 즐겨찾기