最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python多線程同步售票系統(tǒng)

 更新時間:2022年05月07日 14:45:54   作者:Python集中營  
這篇文章主要介紹了python多線程同步售票系統(tǒng),文章基于python的相關資料展開詳細的多線程同步售票系統(tǒng)介紹,感興趣的小伙伴可以參考一下

解決問題場景:假如剩余1000張電影票需要售賣,同時有10家電影App來售賣這1000張電影票。主要的邏輯實現(xiàn)過程是什么,要求使用python技術棧進行解題?

1、分析過程

分析:主要信息點是10家App平臺同時售賣1000張電影票。此時,可以使用10個python線程來作為10家App平臺,同時售賣必須保證電影票數(shù)量的同步,比如A平臺賣出了一張票那總共剩余的票數(shù)是999,B平臺若要再賣出一張票則應該是999-1=998張票。

技術棧分析:python多線程提供了threading模塊,并且threading模塊提供了同步鎖Lock來控制使得票數(shù)達到統(tǒng)一的效果。

2、準備過程

將相關的標準庫導入到代碼塊中,不用額外安裝其他的非標準庫。

import threading  # 多線程相關的操作
import os  # 應用退出操作
import time  # 線程中時間阻塞的控制

初始化一些全局參數(shù),供后面調用過程中使用。

tickets = 1000  # 初始化電影票的總數(shù)為1000張
lock_ = threading.Lock()  # 獲取一個同步鎖對象,用于在多線程邏輯中實現(xiàn)鎖的控制

3、實現(xiàn)過程

編寫一個函數(shù)sell_tickets作為售票的函數(shù)實現(xiàn)過程。

def sell_tickets(app_name='承擔電影票售票任務App平臺'):
    global tickets  # 將這些電影票作為全局變量
    global lock_  # 將獲取到的鎖對象作為全局變量
    # 使用一個死循環(huán)來模擬當前的售票平臺一直在售票
    while True:
        lock_.acquire()  # 每個售票平臺進入售票后先加鎖處理
        if tickets > 0:  # 開始售票之前先判斷電影票的數(shù)量是否已經售完
            tickets = tickets - 1
            print('當前售票平臺:{},賣出一張電影票,剩余電影票:{}張!'.format(app_name, tickets))
            time.sleep(0.1)
        else:
            print('電影票已經全部賣完了!')
            os._exit(0)
        lock_.release()  # 處理完成售票業(yè)務后將鎖釋放
        time.sleep(0.2)

至此,電影票售票的業(yè)務邏輯就寫完了。下面再通過多線程實現(xiàn)多個電影票出售平臺同時售票就OK了。

app_thread_1 = threading.Thread(target=sell_tickets, args=('售票App平臺01',))
app_thread_1.start()
app_thread_2 = threading.Thread(target=sell_tickets, args=('售票App平臺02',))
app_thread_2.start()
app_thread_3 = threading.Thread(target=sell_tickets, args=('售票App平臺03',))
app_thread_3.start()
app_thread_4 = threading.Thread(target=sell_tickets, args=('售票App平臺04',))
app_thread_4.start()
app_thread_5 = threading.Thread(target=sell_tickets, args=('售票App平臺05',))
app_thread_5.start()
app_thread_6 = threading.Thread(target=sell_tickets, args=('售票App平臺06',))
app_thread_6.start()
app_thread_7 = threading.Thread(target=sell_tickets, args=('售票App平臺07',))
app_thread_7.start()
app_thread_8 = threading.Thread(target=sell_tickets, args=('售票App平臺08',))
app_thread_8.start()
app_thread_9 = threading.Thread(target=sell_tickets, args=('售票App平臺09',))
app_thread_9.start()
app_thread_10 = threading.Thread(target=sell_tickets, args=('售票App平臺10',))
app_thread_10.start()

到此這篇關于python多線程同步售票系統(tǒng)的文章就介紹到這了,更多相關python售票系統(tǒng)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • numpy向空的二維數(shù)組中添加元素的方法

    numpy向空的二維數(shù)組中添加元素的方法

    今天小編就為大家分享一篇numpy向空的二維數(shù)組中添加元素的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 帶你詳細了解Python GUI編程框架

    帶你詳細了解Python GUI編程框架

    今天小編就為大家分享一篇python 實現(xiàn)GUI(圖形用戶界面)編程詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-08-08
  • python opencv實現(xiàn)任意角度的透視變換實例代碼

    python opencv實現(xiàn)任意角度的透視變換實例代碼

    這篇文章主要介紹了python opencv實現(xiàn)任意角度的透視變換實例代碼,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python使用marshal模塊序列化實例

    python使用marshal模塊序列化實例

    這篇文章主要介紹了python使用marshal模塊序列化的方法,是非常實用的技巧,需要的朋友可以參考下
    2014-09-09
  • 利用python計算均值、方差和標準差(Numpy和Pandas)

    利用python計算均值、方差和標準差(Numpy和Pandas)

    這篇文章主要給大家介紹了關于利用python計算均值、方差和標準差的相關資料,Numpy在Python中是一個通用的數(shù)組處理包,它提供了一個高性能的多維數(shù)組對象和用于處理這些數(shù)組的工具,它是使用Python進行科學計算的基礎包,需要的朋友可以參考下
    2023-11-11
  • Python3常用內置方法代碼實例

    Python3常用內置方法代碼實例

    這篇文章主要介紹了Python3常用內置方法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Python PyTorch 如何獲取 MNIST 數(shù)據(jù)

    Python PyTorch 如何獲取 MNIST 數(shù)據(jù)

    這篇文章主要介紹了Python PyTorch 如何獲取 MNIST 數(shù)據(jù),通過示例代碼介紹了PyTorch 保存 MNIST 數(shù)據(jù),PyTorch 顯示 MNIST 數(shù)據(jù)的操作方法,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • Python 中的函數(shù)裝飾器和閉包詳解

    Python 中的函數(shù)裝飾器和閉包詳解

    這篇文章主要介紹了Python 中的函數(shù)裝飾器和閉包詳解,需要的朋友可以參考下
    2021-02-02
  • 用 Python 連接 MySQL 的幾種方式詳解

    用 Python 連接 MySQL 的幾種方式詳解

    這篇文章主要介紹了用 Python 連接 MySQL 的幾種方式,大家可以根據(jù)實際情況選擇合理的連接方式,需要的朋友可以參考下
    2018-04-04
  • 關于Python包導入報錯的問題總結

    關于Python包導入報錯的問題總結

    這篇文章主要介紹了關于Python包導入報錯的問題總結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

虎林市| 霍城县| 双牌县| 嘉峪关市| 班玛县| 无棣县| 米易县| 井陉县| 陈巴尔虎旗| 自贡市| 永登县| 浦城县| 大理市| 揭东县| 宁乡县| 江西省| 巫山县| 东安县| 海门市| 苍南县| 怀安县| 敦煌市| 花莲市| 秦皇岛市| 永丰县| 山东省| 高州市| 邵东县| 宿松县| 东辽县| 古蔺县| 肥东县| 沁源县| 东乌| 东明县| 镇沅| 邹平县| 靖边县| 锡林郭勒盟| 冷水江市| 锦州市|