簡體   English   中英

Java進程間互斥鎖

[英]Java inter-process mutex

我需要在 Java 中實現某種進程間互斥鎖。 我正在考慮按照此線程中的建議使用 FileLock API。 我基本上會使用一個虛擬文件並在每個進程中鎖定它。

這是最好的方法嗎? 或者是在標准 API 中構建的類似內容(我找不到)。

有關更多詳細信息,請參見下文:

我編寫了一個應用程序,它讀取一些輸入文件並根據它在其中找到的內容更新一些數據庫表(它更復雜,但業務邏輯在這里無關緊要)。

我需要確保多個數據庫更新之間的互斥。 我試圖用 LOCK TABLE 來實現這個,但是我使用的引擎不支持它。 所以,我想在應用程序代碼中實現鎖定支持。

我采用了 FileLock API 方法並基於以下內容實現了一個簡單的互斥鎖:

所有進程都使用相同的虛擬文件來獲取鎖。

如果您手上有數據庫,為什么還要使用文件? 嘗試使用這樣的數據庫鎖定( https://dev.mysql.com/doc/refman/5.0/en/innodb-locking-reads.html )。

順便問一下,您使用什么數據庫引擎? 如果你列出它可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM