日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

学习笔记(19):Python网络编程并发编程-互斥锁

發布時間:2023/12/10 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习笔记(19):Python网络编程并发编程-互斥锁 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

立即學習:https://edu.csdn.net/course/play/24458/296430?utm_source=blogtoedu

1.互斥鎖:

??????? 多進程間的內存是相互隔離的,因此其數據也是相互隔離的,但是所有的進程都共享一個文件操作系統或者說共享文件處理器和打印端。而共享帶來的是競爭,競爭帶來的是混亂,而解決這種混亂則用到了互斥鎖!實際上互斥鎖的應用使得多進程按照串行的方式進行運行(串行可以通過互斥鎖和join來實現,具體請看下一個學習筆記)

?

2.優劣勢:

?????? 互斥鎖保證了各進程間數據處理的有序性,避免了上述情況的混亂,但是使得一次只能有一個進程在運行,降低了運行效率。

?

3.關鍵知識點:

?????? 1)模塊:multiprocessing和threading模塊

??????? 2)Process類和Thread類

??????? 3)acquire()——獲得鎖,release()——釋放鎖

?

4.代碼:

1)multiprocessing模塊(進程鎖)

from multiprocessing import Process,Lock import timedef task(name,lock):lock.acquire()print('%s 1'%name)time.sleep(2)print('%s 2'%name)time.sleep(2)print('%s 3'%name)lock.release()if __name__ == '__main__':lock = Lock()for i in range(3):p = Process(target=task, args=('子進程%s'%i,lock))p.start()''' E:\python3\venv2\venv\Scripts\python.exe C:/Users/jinlin/Desktop/python_further_study/并發編程/互斥鎖.py 子進程0 1 子進程0 2 子進程0 3 子進程1 1 子進程1 2 子進程1 3 子進程2 1 子進程2 2 子進程2 3Process finished with exit code 0 '''

2)threading模塊(線程鎖)

import threading import timedef task(name,lock):lock.acquire()print('%s 1'%name)time.sleep(2)print('%s 2'%name)time.sleep(2)print('%s 3'%name)lock.release()if __name__ == '__main__':lock = threading.Lock()for i in range(3):p = threading.Thread(target=task, args=('子進程%s'%i,lock))p.start()

注:具體看后面的學習筆記

總結

以上是生活随笔為你收集整理的学习笔记(19):Python网络编程并发编程-互斥锁的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。