1. # Python主要通过标准库中的threading包来实现多线程
    2. import threading
    3. import time
    4. import os
    5. def doChore(): # 作为间隔 每次调用间隔0.5s
    6. time.sleep(0.5)
    7. def booth(tid):
    8. global i
    9. global lock
    10. while True:
    11. lock.acquire() # 得到一个锁,锁定
    12. if i != 0:
    13. i = i - 1 # 售票 售出一张减少一张
    14. print(tid, ':now left:', i) # 剩下的票数
    15. doChore()
    16. else:
    17. print("Thread_id", tid, " No more tickets")
    18. os._exit(0) # 票售完 退出程序
    19. lock.release() # 释放锁
    20. doChore()
    21. #全局变量
    22. i = 15 # 初始化票数
    23. lock = threading.Lock() # 创建锁
    24. def main():
    25. # 总共设置了3个线程
    26. for k in range(3):
    27. # 创建线程; Python使用threading.Thread对象来代表线程
    28. new_thread = threading.Thread(target=booth, args=(k,))
    29. # 调用start()方法启动线程
    30. new_thread.start()
    31. if __name__ == '__main__':
    32. main()