一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python多線程實現(xiàn)代碼(模擬銀行服務(wù)操作流程)

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

2020-04-26 09:51小小小曦 Python

這篇文章主要介紹了python模擬銀行服務(wù)多線程實現(xiàn)代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

1.模擬銀行服務(wù)完成程序代碼

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

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

顧客取服務(wù)序號

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

服務(wù)員工呼叫顧客

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

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

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

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

代碼:

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
# 服務(wù)器
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é)果截圖:

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

總結(jié)

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

原文鏈接:https://blog.csdn.net/Shine_rise/article/details/103949072

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 小黄鸭YELLOWDUCK7596| 韩国三级大全 | 疯狂伦交1一6 小说 风间由美在线 | 国产第一综合另类色区奇米 | 日韩欧美国产在线 | 免费观看一级特黄三大片视频 | 日韩高清在线免费看 | 亚洲日本中文字幕天堂网 | 国产精品视频一区二区三区w | 四虎成人免费视频 | 男女男精品网站免费观看 | 极品久久 | 成全视频在线观看免费 | 精品国产免费第一区二区三区日韩 | ts人妖国产一区 | 精品视频在线播放 | 精品国产精品人妻久久无码五月天 | 日韩欧美中文字幕一区 | 欧美日韩国产中文字幕 | 欧美精品一线二线大片 | 亚洲精品国产AV成人毛片 | 思敏1一5集国语版免费观看 | 亚洲入口 | 视频免费视频观看网站 | 999精品视频这里只有精品 | 白丝女榨干蹂躏我 | 日本bbwbbw| 精品无码一区二区三区中文字幕 | 午夜想想爱 | narutomanga玖辛奈之乳 | 欧美又硬又粗又长又大 | 国产午夜免费 | igao网果冻传媒 | 97国产蝌蚪视频在线观看 | tobu8中国在线观看免费视频 | 岛国虐乳紧缚媚药调教 | 国产高清日韩 | 韩国三级年轻的小婊孑 | 欧美亚洲国产精品久久第一页 | 日本护士xxxx视频 | 色成人综合网 |