Python多线程实现卖票系统

import threading
import time
import random

tickets = 100

class myThread(threading.Thread):
    def __init__(self, threadID, name):
        threading.Thread.__init__(self)
        self.threadID = threadID
        self.name = name

    def run(self):
        global tickets
        while tickets:
            threadLock.acquire()
            if tickets > 0:
                tickets -= 1
                print("%s 售出一张 剩余 %d" % (self.name, tickets))
            threadLock.release()
            time.sleep(random.randint(0, 3))


threadLock = threading.Lock()
threads = []

# 创建新线程
thread1 = myThread(1, "Thread-1",)
thread2 = myThread(2, "Thread-2",)

# 开启新线程
thread1.start()
thread2.start()

# 添加线程到线程列表
threads.append(thread1)
threads.append(thread2)

# 等待所有线程完成
for t in threads:
    t.join()
print("Exiting Main Thread")

你可能感兴趣的:(Python,多线程卖票)