1. 程式人生 > >Python多執行緒售票案例

Python多執行緒售票案例

在學習多執行緒的時候,我們經常要學習到多視窗售票這一經典案例,今天我們將用Python語言寫一個簡單易懂的售票程式,幫助大家學習理解

import threading
import time
lock=threading.Lock()
k=250
class a(threading.Thread):
  def __init__(self):
    threading.Thread.__init__(self)
  def run(self):
    global k,lock
    while(k>0):
      lock.acquire()
      if(k>0):
        print("a視窗賣出一張票,還剩"+str(k-1)+"張票")
        k=k-1
      if(k<0 and k==0):
        print("票賣完了")
      lock.release()
class b(threading.Thread):
  def __init__(self):
    threading.Thread.__init__(self)
  def run(self):
    global k,lock
    while(k>0):
      lock.acquire()
      if(k>0):
        print("b視窗賣出一張票,還剩"+str(k-1)+"張票")
        k=k-1
      if(k<0 and k==0):
        print("票賣完了")
      lock.release()
t1=a()
t1.start()
t2=b()
t2.start()