如何在Java中爲整個計算機創建真正的單身人士?整臺電腦的真正單身?
我有一個用Java編寫的控制檯應用程序。如果應用程序第二次執行,我希望它知道主應用程序已經在運行(並正在執行作業)。第二次執行只允許用戶查詢數據(作業)。我知道我可以創建一個文件並將所有內容寫入它,但是之後我將不得不支持計算機重置等。
有沒有更好的方法來做到這一點?
總結:
- 我啓動應用程序。它具有工作並在間隔時間內執行它們。
- 我第二次啓動應用程序。我收到消息,說明作業已經運行,我可以從第一個應用程序查詢數據。
- 第三次啓動應用程序,它的工作原理與第二次相同。
- 如果我停止第一個實例並開始一個新實例,它就像第一個實例一樣工作。
P.S.我知道這個問題肯定已經被問過多次,但谷歌和StackOverflow搜索只給我鏈接相對於Singleton設計模式。
你可以使用套接字通信或類似[terracotta](http://terracotta.org/) – 2013-02-23 15:53:44
來做到這一點單身人士並不是單個JVM的好主意;我認爲它們對於機器上的所有JVM都更糟糕。 – duffymo 2013-02-23 15:53:45
讓您的第一個應用程序作爲服務器連接到套接字。其他人將無法綁定到該端口作爲服務器,直到第一個死亡。作爲獎勵,其他人可以作爲客戶端進行綁定,並使用該套接字在它們之間進行通信。 – 2013-02-23 15:53:48