91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python互斥鎖怎么解決多線程問題

發布時間:2021-04-28 13:46:57 來源:億速云 閱讀:177 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關Python互斥鎖怎么解決多線程問題的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

python主要應用領域有哪些

1、云計算,典型應用OpenStack。2、WEB前端開發,眾多大型網站均為Python開發。3.人工智能應用,基于大數據分析和深度學習而發展出來的人工智能本質上已經無法離開python。4、系統運維工程項目,自動化運維的標配就是python+Django/flask。5、金融理財分析,量化交易,金融分析。6、大數據分析。

1、說明

當多個線程幾乎同時修改共享數據時,需要同步控制。

線程同步可以保證多線程安全訪問競爭資源,最簡單的同步機制是引入互斥鎖。

互斥鎖引入資源狀態:鎖定/非鎖定。

2、實例

"""
Python 互斥鎖解決多線程資源競爭問題
"""
import time
import threading
 
 
# 線程共享變量
g_num = 0
 
# 創建一個互斥鎖
# 默認是未上鎖的狀態
mutex = threading.Lock()
 
 
def work1(num):
    global g_num
    for i in range(num):
        mutex.acquire()  # 上鎖
        g_num += 1
        mutex.release()  # 解鎖
 
    print("---work1---g_num=%d" % g_num)
 
 
def work2(num):
    global g_num
    for i in range(num):
        mutex.acquire()  # 上鎖
        g_num += 1
        mutex.release()  # 解鎖
 
    print("---work2---g_num=%d" % g_num)
 
 
def mutex_test():
    """互斥鎖測試"""
 
    # 創建2個線程,讓他們各自對g_num加1000000次
    count = 1000000
    t1 = threading.Thread(target=work1, args=(count,))
    t1.start()
 
    t2 = threading.Thread(target=work2, args=(count,))
    t2.start()
 
    # 等待計算完成
    # len(threading.enumerate()) = 當前程序線程的數量
    # 為1說明只剩下主線程
    while len(threading.enumerate()) != 1:
        time.sleep(1)
 
    print("2個線程對同一個全局變量操作之后的最終結果是:%s" % g_num)
 
 
def main():
    mutex_test()
 
 
if __name__ == '__main__':
    main()

感謝各位的閱讀!關于“Python互斥鎖怎么解決多線程問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴青县| 乌什县| 孟连| 巴里| 炎陵县| 普格县| 扎赉特旗| 新丰县| 台东市| 湘阴县| 深州市| 黎川县| 当阳市| 怀集县| 阿拉善左旗| 安丘市| 新绛县| 石林| 乐亭县| 兰西县| 阿拉善左旗| 神农架林区| 华容县| 绍兴市| 慈溪市| 东海县| 乌鲁木齐县| 江达县| 宜阳县| 昌吉市| 西峡县| 集贤县| 沙坪坝区| 深水埗区| 哈巴河县| 余干县| 福清市| 丰顺县| 方山县| 三明市| 长汀县|