當前位置:首頁 » 編程語言 » python取進程pid

python取進程pid

發布時間: 2025-03-24 13:09:36

『壹』 python中的os.getpid是什麼,pid有什麼用

getpid是獲得當前進程的進程號。系統每開辟一個新進程就會為他分配一個進程號。在多進程的時候會用到吧好像。

『貳』 python 獲取指定進程pid,怎麼總是錯

簡答:
通過知道對應的進程名,可以獲得進程,然後進一步獲取進程信息。

詳解,自己去看吧:
【記錄】折騰Python中的psutil:一個用於獲得處理器和系統相關信息的模塊
(此處不能貼地址,請自己用google搜標題,即可找到帖子地址)

『叄』 Python 爬蟲進階篇——diskcahce緩存(二)

上一篇文章為大家介紹了diskcache的基礎用法,本文將繼續深入探討diskcache的更多高級功能。

關於diskcache,它是一種基於SQLite資料庫的緩存對象管理方式。SQLite是一個輕量級的基於磁碟的資料庫,它不需要單獨的伺服器進程,並支持SQL查詢。在上篇文章的源碼截圖上,你可以看到一些SQL語句的使用。

diskcache支持使用diskcache.FanoutCache自動分片基礎資料庫。分片是對數據進行水平分區,可以減少寫入時的阻塞。盡管讀和寫不會互相阻礙,但寫入會阻礙其他寫入。分片的默認值為8。

以下是一個示例代碼:

# 示例代碼

在示例中,我們在diskcache_2文件夾中創建了一個具有四個分片和一秒超時的緩存。如果操作耗時超過一秒,它們將嘗試中止操作。

那麼每一個分片的大小是多少呢?分片的大小都是平均分配的,占總空間的四分之一。diskcache的默認大小為1GB。

diskcache提供了一個collections.deque兼容的雙端隊列diskcache.Deque。雙端隊列是堆棧和隊列的一般化,可以在前後都可以進行快速訪問和編輯,且可持久化,操作比較便捷。

以下是一個示例代碼:

# 示例代碼

運行結果如下:

Popleft 獲取隊列最前面的一個元素,pop獲取末尾的一個元素;

Appendleft 在隊列最開始添加一個元素,append 在末尾添加一個元素;

Extendleft 在隊列最開始添加一個數組,extend在末尾添加一個數組;

那麼deque的存儲位置在哪裡?可以使用以下命令查看隊列的存儲位置:

包括cache也是一個可以使用directory屬性查看默認存儲的位置;

那麼如何指定directory呢?Deque的第二個參數指定存儲位置,第一個參數為隊列的初始值。或者可以直接指定參數名稱,如下:

Index 類似於dict(字典),可持久化,使用也比較便捷。以下是一個示例:

# 示例代碼

popitem表示獲取最後一個鍵對值,並且刪除,結果如下:

peekitem() 可傳遞last 參數是否獲取最後一個,不會刪除原始值;

setdefault(key,default) 可以給指定的key值設置默認值,在查找時可以預先設置一個默認值,防止key值不存在而拋出異常。

keys()與values()可以查找所有Index中的key值與value值,然而沒有提供判斷key值是否存在的方法,但是可以使用setdefault的方法自行封裝。

Lock還記得上篇文章中提到的Lock鎖嗎?先看一下源碼:

可以看到這里的鎖用的就是cache的add方法的特性,源碼中也給出了使用的方式:

從源碼上看有一個while 死循環,直到add成功時才會被釋放,這里處理的方式不是很好,可能會造成死鎖,所以一般情況下,都會添加一個過期的時間,如下:

RLock還有一種RLock鎖,與Lock鎖的區別是RLock允許在同一線程中被多次acquire。而Lock卻不允許這種情況。以下是一個示例:

結果是執行成功。

看一下源碼:

從源碼中可以看出,判斷鎖的條件是os.getpid()(進程pid)與threading.get_ident()(線程標識符),如果每次acquire時的pid與ident都相同的時,即可成功。那麼就可以在相同的進程中無限次數的acquire,但是多少次acquire就得多少次的release,防止死鎖。

那麼是使用Lock還是RLock呢?這個要具體的看實際情況,並不是誰就一定好。

總結本次推文中介紹了diskcache中FanoutCache緩存分片、雙端隊列deque、Index、Lock以及RLock。

大家可以在實際中靈活運用,diskcache緩存的優勢還是很大的,無需安裝其他的模塊,並且在文件管理器中能直接查看,還可以利用緩存的一些特性使用多線程的去實現業務等。

但是也是有缺點的,即受制於本地文件系統的限制。每個磁碟每個目錄下的文件數量是有限制的,所以需要結合實際情況使用。

熱點內容
編程技術入侵 發布:2025-03-26 09:06:43 瀏覽:399
編譯原理自下而上 發布:2025-03-26 08:49:48 瀏覽:262
win10刪除文件拒絕訪問 發布:2025-03-26 08:43:58 瀏覽:598
exe加密的pdf文件破解 發布:2025-03-26 08:43:56 瀏覽:664
蘋果密碼存儲點不開 發布:2025-03-26 08:43:06 瀏覽:246
埃安y70哪個配置好 發布:2025-03-26 08:33:44 瀏覽:969
iterm怎麼連接伺服器 發布:2025-03-26 08:28:45 瀏覽:257
存儲文件目錄 發布:2025-03-26 08:27:42 瀏覽:344
神話2腳本 發布:2025-03-26 08:18:11 瀏覽:802
nginx代理不緩存 發布:2025-03-26 08:10:31 瀏覽:262