日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Python教程:python多線程線程鎖如何使用

在使用多線程處理程序的過程中,如何多個(gè)線程同時(shí)操作一個(gè)對(duì)象,很容易造成線程不安全的問題,嚴(yán)重影響程序結(jié)果。因此會(huì)使用線程鎖,線程鎖就向我們正常生活中的鎖一樣,可以保護(hù)我們想要保護(hù)對(duì)象的安全,而且還可以同時(shí)使用多個(gè)鎖鎖住一個(gè)資源。

創(chuàng)新互聯(lián)建站是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、微信小程序開發(fā)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十載以來,已經(jīng)為近千家成都食品包裝袋各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)?,F(xiàn)在,服務(wù)的近千家客戶與我們一路同行,見證我們的成長(zhǎng);未來,我們一起分享成功的喜悅。

1、什么是線程鎖?

同一時(shí)刻只允許一個(gè)線程操作該數(shù)據(jù),可以保證數(shù)據(jù)安全。

線程鎖用于鎖定資源,可以同時(shí)使用多個(gè)鎖,當(dāng)需要獨(dú)占某一資源時(shí),任何一個(gè)鎖都可以鎖這個(gè)資源。

2、線程鎖目的

將一段代碼鎖住,一旦獲得鎖權(quán)限,除非釋放線程鎖,否則其他代碼都無法獲得鎖權(quán)限。

3、為什么要使用線程鎖?

多線程同時(shí)完成特定的操作時(shí),由于并不是原子操作,所以在完成操作的過程中會(huì)被打斷去做其他的工作,可能會(huì)產(chǎn)生臟數(shù)據(jù)

4、創(chuàng)建鎖:

lock=threading.Lock()   
cond=threading.Condition(lock=lock)

5、鎖的方法:

cond.acquire():  獲得鎖
cond.wait()           等待通知
cond.notify()        通知正在等待的鎖
cond.notify_all()   通知所有正在等待的鎖
cond.release()       釋放鎖

5、使用線程鎖

"""
多線程數(shù)據(jù)訪問問題
"""
import threading

num = 0

def test():
    """測(cè)試函數(shù)"""
    global num
    for i in range(1, 1000001):
        # 上鎖:鎖定
        lock.acquire()
        num += 1
        # 開鎖
        lock.release()

    print(f"{threading.current_thread().getName()}當(dāng)前線程執(zhí)行完成,num: {num}")


# 創(chuàng)建一個(gè)互斥鎖{多個(gè)線程之間互斥}對(duì)象
lock = threading.Lock()

if __name__ == "__main__":
    # 創(chuàng)建兩個(gè)線程,完成計(jì)數(shù)任務(wù)
    t1 = threading.Thread(target=test)
    t2 = threading.Thread(target=test)
    t1.start()
    t2.start()
    '''
    0---10
    t1: 1 2 3                11 12         16                 : 16
    t2:        4 5 6 7 8 9 10      13 14 15   17 18 19 20     : 20
    '''

以上就是python多線程線程鎖的使用介紹,希望能幫助你理解哦~更多python學(xué)習(xí)推薦:python教程。


當(dāng)前題目:創(chuàng)新互聯(lián)Python教程:python多線程線程鎖如何使用
文章位置:http://www.5511xx.com/article/djpcjhe.html