国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

服務(wù)器之家 - 腳本之家 - Python - Python多線(xiàn)程實(shí)現(xiàn)模擬火車(chē)站售票

Python多線(xiàn)程實(shí)現(xiàn)模擬火車(chē)站售票

2021-12-27 00:39程序員攻略 Python

這篇文章主要為大家詳細(xì)介紹了Python多線(xiàn)程實(shí)現(xiàn)模擬火車(chē)站售票,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Python多線(xiàn)程模擬火車(chē)站售票的具體代碼,供大家參考,具體內(nèi)容如下

Python的標(biāo)準(zhǔn)庫(kù)提供了兩個(gè)模塊:thread和threading,thread是低級(jí)模塊,threading是高級(jí)模塊,對(duì)thread進(jìn)行了封裝。

我們使用threading這個(gè)高級(jí)模塊, 模擬火車(chē)站賣(mài)票,如果不加鎖,賣(mài)出同一張票:

import threading 
from time import sleep, ctime
 
 
N = 100  # 100張票
 
def Sell(name):
     global N
 
     while True:
         if N>0:
            sleep(0.1)  #加入此句,可以讓線(xiàn)程賣(mài)出第0張票或同一張票
            print("{}賣(mài)出第{}張票!
".format(name,N))
            N=N-1
 
def main():
 
    threads = {}
 
    for i in ( "A" ,"B"  ):
        # 實(shí)例化每個(gè) Thread 對(duì)象,把函數(shù)和參數(shù)傳遞進(jìn)去,返回 Thread 實(shí)例
        t = threading.Thread(target=Sell, args=( i  ,))
        threads[i]=t     # 分配線(xiàn)程
 
    for i in  ("A" ,"B"):
        threads[i].start()    # 開(kāi)始執(zhí)行多線(xiàn)程
 
    for i in  ("A" ,"B"):
        threads[i].join()     # 等待線(xiàn)程結(jié)束或超時(shí),然后再往下執(zhí)行
 
    print("程序結(jié)束!")
 
 
if __name__ == "__main__":
    main()

運(yùn)行效果:

Python多線(xiàn)程實(shí)現(xiàn)模擬火車(chē)站售票

我們使用鎖來(lái)避免賣(mài)出同一張票,當(dāng)多個(gè)線(xiàn)程同時(shí)執(zhí)行l(wèi)ock.acquire()時(shí),只有一個(gè)線(xiàn)程能成功地獲取鎖,然后繼續(xù)執(zhí)行代碼,其他線(xiàn)程就等待直到獲得鎖為止。用try...finally來(lái)確保鎖一定會(huì)被釋放。

import threading
from time import sleep, ctime
 
N = 100  # 100張票
 
lock = threading.Lock()
 
def Sell(name):
 
     global N
 
     while True:
 
         lock.acquire()
         try:
            if N>0:
             sleep(0.1)  #加入此句,可以讓線(xiàn)程賣(mài)出第0張票或同一張票
             print("{}賣(mài)出第{}張票!
".format(name,N))
             N=N-1
         finally:
             # 改完了一定要釋放鎖:
             lock.release()
 
def main():
 
    threads = {}
 
    for i in ( "A" ,"B"  ):
        # 實(shí)例化每個(gè) Thread 對(duì)象,把函數(shù)和參數(shù)傳遞進(jìn)去,返回 Thread 實(shí)例
        t = threading.Thread(target=Sell, args=( i  ,))
        threads[i]=t     # 分配線(xiàn)程
 
    for i in  ("A" ,"B"):
        threads[i].start()    # 開(kāi)始執(zhí)行多線(xiàn)程
 
    for i in  ("A" ,"B"):
        threads[i].join()     # 等待線(xiàn)程結(jié)束或超時(shí),然后再往下執(zhí)行
 
    print("程序結(jié)束!")
 
 
if __name__ == "__main__":
    main()

運(yùn)行效果:

Python多線(xiàn)程實(shí)現(xiàn)模擬火車(chē)站售票

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/HQ354974212/article/details/89603615

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人在线免费 | 久久亚洲精品综合 | 欧美日本在线 | 四虎永久免费 | 免费黄色小视频 | 国产成人99久久亚洲综合精品 | 日韩中文字幕一区二区 | 黄色大片在线播放 | 夜夜爽99久久国产综合精品女不卡 | 久久精品综合 | 国产精品成av人在线视午夜片 | 国产精品美女视频 | 国产在线观看一区二区三区 | 亚洲精品国偷拍自产在线观看 | 日日摸天天做天天添天天欢 | 99精品视频免费观看 | 久久九| 久久国内精品 | 欧美一区二区三区视频在线 | 国产日韩欧美在线观看 | 成人亚洲 | 手机亚洲第一页 | 亚洲一区观看 | 波多野结衣福利电影 | 日韩欧美h | 国产一级特黄 | 欧美日韩在线免费观看 | 久久www免费人成看片高清 | 欧美精品综合 | 一区二区三区成人久久爱 | 国产成人片 | 夜夜操天天操 | 精品国产一区二区三区久久久 | 国产欧美精品一区二区三区四区 | 日韩三级电影在线免费观看 | 在线a电影 | 亚洲狠狠丁香婷婷综合久久久 | 国产成人一区二区三区 | 北条麻妃一区二区免费播放 | 澳门av| 日韩男女视频 |