欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python多線程實現(xiàn)代碼(模擬銀行服務操作流程)

 更新時間:2020年01月13日 11:18:42   作者:小小小曦  
這篇文章主要介紹了python模擬銀行服務多線程實現(xiàn)代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

1.模擬銀行服務完成程序代碼

目前,在以銀行營業(yè)大廳為代表的窗口行業(yè)中大量使用排隊(叫號)系統(tǒng),該系統(tǒng)完全模擬了人群排隊全過程,通過取票進隊、排隊等待、叫號服務等功能,代替了人們站隊的辛苦。

排隊叫號軟件的具體操作流程為:

顧客取服務序號

當顧客抵達服務大廳時,前往放置在入口處旁的取號機,并按一下其上的相應服務按鈕,取號機會自動打印出一張服務單。單上顯示服務號及該服務號前面正在等待服務的人數(shù)。

服務員工呼叫顧客

服務員工只需按一下其柜臺上呼叫器的相應按鈕,則顧客的服務號就會按順序的顯示在顯示屏上,并發(fā)出“叮咚”和相關(guān)語音信息,提示顧客前往該窗口辦事。當一位顧客辦事完畢后,柜臺服務員工只需按呼叫器相應鍵,即可自動呼叫下一位顧客。

編寫程序模擬上面的工作過程,主要要求如下:

程序運行后,當看到“請點擊觸摸屏獲取號碼:”的提示時,只要按回車鍵,即可顯示“您的號碼是:XXX,您前面有 YYY 位”的提示,其中XXX 是所獲得的服務號碼,YYY 是在 XXX 之前來到的正在等待服務的人數(shù)。

用多線程技術(shù)模擬服務窗口(可模擬多個),具有服務員呼叫顧客的行為,假設每個顧客服務的時間是10000ms,時間到后,顯示“請 XXX 號到 ZZZ 號窗口!”的提示。其中 ZZZ 是即將為客戶服務的窗口號。

代碼:

以下為 python 實現(xiàn):

from Task04_Queue.linkedQueue import LinkedQueue
import threading
import time
class LinkBankQueue(LinkedQueue):
 def __init__(self):
  LinkedQueue.__init__(self)
  self.callNumber = 0
 def getCallNumber(self):
  if self.is_empty() and self.callNumber == 0:
   self.callNumber = 1
  else:
   self.callNumber += 1
  return self.callNumber
 def getLength(self):
  if self.is_empty():
   return 0
  else:
   cur = self._head
   len = 1
   while cur != self._tail:
    cur = cur.next
    len += 1
   return len
# 服務器
class ServiceWindow(threading.Thread):
 def __init__(self):
  threading.Thread.__init__(self)
  self.bankQueue = None
  self.lock = threading.Lock()
 def service(self):
  self.lock.acquire()
  while True:
   time.sleep(20)
   try:
    if not self.bankQueue.is_empty():
     print('請 %d 號到 %s 號窗口' % (self.bankQueue._head.data, threading.current_thread().name))
     self.bankQueue.dequeue()
     # time.sleep(10)
    else:
     print('隊列為空哦')
   finally:
    self.lock.release()
# 客戶端
if __name__ == '__main__':
 bankQueue = LinkBankQueue()
 windowcount = 2
 serviceWindows = [None] * windowcount
 threadList = [None] * windowcount
 for i in range(windowcount):
  serviceWindows[i] = ServiceWindow()
  serviceWindows[i].bankQueue = bankQueue
  threadList[i] = threading.Thread(name=(i + 1), target=serviceWindows[i].service, args=())
  threadList[i].start()
 while True:
  input('請點擊觸摸屏獲取號碼:')
  callNumber = bankQueue.getCallNumber()
  if bankQueue != None:
   print('您的號碼是:%d,您前面有 %d 位' % (callNumber, bankQueue.getLength()))
   bankQueue.enqueue(callNumber)
  else:
   print('您的號碼是:%d,您前面有 0 位' % (callNumber))

結(jié)果截圖:

總結(jié)

以上所述是小編給大家介紹的python多線程實現(xiàn)代碼(模擬銀行服務操作流程),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Python實現(xiàn)希爾伯特變換(Hilbert transform)的示例代碼

    Python實現(xiàn)希爾伯特變換(Hilbert transform)的示例代碼

    希爾伯特變換(Hilbert transform)是一個對函數(shù)產(chǎn)生定義域相同的函數(shù)的線性算子,而且希爾伯特變換在信號處理中很重要,所以本文和大家分享了Python實現(xiàn)希爾伯特變換的代碼,需要的可以參考一下
    2023-04-04
  • Python pymysql連接數(shù)據(jù)庫并將查詢結(jié)果轉(zhuǎn)化為Pandas dataframe

    Python pymysql連接數(shù)據(jù)庫并將查詢結(jié)果轉(zhuǎn)化為Pandas dataframe

    這篇文章主要為大家介紹了Python pymysql連接數(shù)據(jù)庫并將結(jié)果轉(zhuǎn)化為Pandas dataframe實現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • python 字典(dict)按鍵和值排序

    python 字典(dict)按鍵和值排序

    下面小編就為大家?guī)硪黄猵ython 字典(dict)按鍵和值排序。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • Django進階深入理解使用類視圖和中間件示例

    Django進階深入理解使用類視圖和中間件示例

    這篇文章主要為大家介紹了Django高級指南之深入理解和使用類視圖和中間件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • tensorflow如何繼續(xù)訓練之前保存的模型實例

    tensorflow如何繼續(xù)訓練之前保存的模型實例

    今天小編就為大家分享一篇tensorflow如何繼續(xù)訓練之前保存的模型實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python3+PyQt5實現(xiàn)支持多線程的頁面索引器應用程序

    python3+PyQt5實現(xiàn)支持多線程的頁面索引器應用程序

    這篇文章主要為大家詳細介紹了python3+PyQt5實現(xiàn)支持多線程的頁面索引器應用程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • TensorFlow加載模型時出錯的解決方式

    TensorFlow加載模型時出錯的解決方式

    今天小編就為大家分享一篇TensorFlow加載模型時出錯的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python 刪除excel表格重復行,數(shù)據(jù)預處理操作

    python 刪除excel表格重復行,數(shù)據(jù)預處理操作

    這篇文章主要介紹了python 刪除excel表格重復行,數(shù)據(jù)預處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • PyCharm實現(xiàn)本地恢復或查看歷史代碼

    PyCharm實現(xiàn)本地恢復或查看歷史代碼

    這篇文章主要介紹了PyCharm實現(xiàn)本地恢復或查看歷史代碼,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 深入理解python協(xié)程

    深入理解python協(xié)程

    協(xié)程又稱為微線程,協(xié)程是一種用戶態(tài)的輕量級線程,它是實現(xiàn)多任務的另一種方式,只不過是比線程更小的執(zhí)行單元。因為它自帶CPU的上下文,這樣只要在合適的時機,我們可以把一個協(xié)程切換到另一個協(xié)程
    2021-06-06

最新評論