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

Python簡單進程鎖代碼實例

 更新時間:2015年04月27日 10:44:49   投稿:junjie  
這篇文章主要介紹了Python簡單進程鎖代碼實例,本文講解了線程和進程的相關知識,然后給出了Python的實現(xiàn)代碼,需要的朋友可以參考下

先說說線程

在多線程中,為了保證共享資源的正確性,我們常常會用到線程同步技術.
將一些敏感操作變成原子操作,保證同一時刻多個線程中只有一個線程在執(zhí)行這個原子操作。
我最常用的是互斥鎖,也稱獨占鎖。其次還有讀寫鎖,信號量,條件變量等。
除此之外,我們在進程間通信時會用到信號,向某一個進程發(fā)送信號,該進程中設置信號處理函數(shù),然后當該進程收到信號時,執(zhí)行某些操作。
其實在線程中,也可以接受信號,利用這種機制,我們也可以用來實現(xiàn)線程同步。更多信息見 http://www.fzitv.net/article/64977.htm

再說說進程

進程里我們通過一些進程間通信方式,可以實現(xiàn)進程間的同步。
最近我遇到的一個情況是,某采集系統(tǒng)進程池中很多進程會向同一個日志文件中打印日志,如果通過進程間通信實現(xiàn),比較麻煩。
還有一種辦法,如果采用共享內(nèi)存的方式,不同的進程分別將日志消息通過共享內(nèi)存放入一個線程安全的隊列中,再建立一個進程負責專門打印日志,這樣也可以保證不被大亂,
保證日志的正確性,但代碼量也很多阿。
還有一種辦法,在共享內(nèi)存中設置一個互斥鎖,所有進程共享。
如果能像線程一樣,有一個簡單的互斥鎖,用的時候只要加鎖,就能實現(xiàn)進程間的互斥就好了。之前對文件加鎖,也有些印象,于是我用它實現(xiàn)了一個進程間的互斥鎖

#coding=utf-8 
 
""" 
Process mutex lock. 
Actually it is implemented by file lock. 
""" 
 
import fcntl 
 
class ProcessLock(object): 
 
    __lockfd = None 
 
    @staticmethod 
    def lock(): 
        ProcessLock.__lockfd = open(__file__, 'a+') 
        fcntl.flock(ProcessLock.__lockfd, fcntl.LOCK_EX) 
 
    @staticmethod 
    def unlock(): 
        fcntl.flock(ProcessLock.__lockfd, fcntl.LOCK_UN) 


加鎖  ProcessLock.lock()
釋放 ProcessLock.unlock()
非常簡單使用,有興趣的朋友可以試一試。

相關文章

  • Pycharm插件(Grep Console)自定義規(guī)則輸出顏色日志的方法

    Pycharm插件(Grep Console)自定義規(guī)則輸出顏色日志的方法

    這篇文章主要介紹了Pycharm插件(Grep Console)自定義規(guī)則輸出顏色日志的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Python編程之字符串模板(Template)用法實例分析

    Python編程之字符串模板(Template)用法實例分析

    這篇文章主要介紹了Python編程之字符串模板(Template)用法,結合具體實例形式分析了Python字符串模板的功能、定義與使用方法,需要的朋友可以參考下
    2017-07-07
  • Django實現(xiàn)WebSocket在線聊天室功能(channels庫)

    Django實現(xiàn)WebSocket在線聊天室功能(channels庫)

    本文基于channels庫Django實現(xiàn)WebSocket在線聊天室功能,包括安裝及創(chuàng)建django項目的全過程,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • python數(shù)據(jù)解析之XPath詳解

    python數(shù)據(jù)解析之XPath詳解

    本篇文章主要介紹了python數(shù)據(jù)解析之xpath的基本使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-09-09
  • python實現(xiàn)兩個經(jīng)緯度點之間的距離和方位角的方法

    python實現(xiàn)兩個經(jīng)緯度點之間的距離和方位角的方法

    今天小編就為大家分享一篇python實現(xiàn)兩個經(jīng)緯度點之間的距離和方位角的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 用Python selenium實現(xiàn)淘寶搶單機器人

    用Python selenium實現(xiàn)淘寶搶單機器人

    今天給大家?guī)淼氖顷P于Python實戰(zhàn)的相關知識,文章圍繞著用Python selenium實現(xiàn)淘寶搶單機器人展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • python RSA加密的示例

    python RSA加密的示例

    這篇文章主要介紹了python RSA加密的示例,幫助大家更好的理解和使用加密算法,感興趣的朋友可以了解下
    2020-12-12
  • Python中Selenium的基本使用步驟

    Python中Selenium的基本使用步驟

    Selenium是一個用于自動化瀏覽器操作的Python庫,常用于Web應用的測試和爬蟲等場景,本文給大家介紹Python中Selenium的基本使用教程,感興趣的朋友一起看看吧
    2023-11-11
  • Python Flask基礎教程示例代碼

    Python Flask基礎教程示例代碼

    這篇文章主要介紹了Python Flask基礎教程示例代碼,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • python刪除指定類型(或非指定)的文件實例詳解

    python刪除指定類型(或非指定)的文件實例詳解

    這篇文章主要介紹了python刪除指定類型(或非指定)的文件,以實例形式較為詳細的分析了Python刪除文件的相關技巧,需要的朋友可以參考下
    2015-07-07

最新評論

上蔡县| 吉安县| 突泉县| 始兴县| 开鲁县| 确山县| 香格里拉县| 吕梁市| 沙河市| 沙雅县| 清原| 阜南县| 东阿县| 沙坪坝区| 即墨市| 托克逊县| 上犹县| 安顺市| 龙门县| 平顶山市| 化德县| 宜兰市| 鸡东县| 贡山| 手游| 萨嘎县| 武平县| 青海省| 静乐县| 内丘县| 武山县| 托里县| 马边| 桂东县| 克什克腾旗| 馆陶县| 郯城县| 东光县| 沙坪坝区| 乌苏市| 巩义市|