第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java如何讓程序只運行一次?

Java如何讓程序只運行一次?

猛跑小豬 2019-03-14 10:15:12
public static void main(String[] args) {    if(程序未運行) {        // 運行程序        while(true) {            Thread.sleep(1000);        }    } else {        System.out.println("程序已經(jīng)正在運行,該進程退出");    }}目前使用的解決方案基本是占用操作系統(tǒng)的某項資源來達到目的,比如占用端口號、文件。有沒有更優(yōu)雅的方式?
查看完整描述

3 回答

?
HUH函數(shù)

TA貢獻1836條經(jīng)驗 獲得超4個贊

你的應該是一臺機器上只啟動一個實例吧,有本地的方案也有分布式的方案。
本地的方案一般是通過占用一個固定端口、文件鎖來完成,這也是所有程序的通用做法。

如果是分布式環(huán)境,這個事情就演化為master的選舉,此時是通過zookeeper等類似的中間協(xié)調人來完成。


查看完整回答
反對 回復 2019-04-16
?
明月笑刀無情

TA貢獻1828條經(jīng)驗 獲得超4個贊

也就是說你可能會執(zhí)行多次這個程序 但是你希望里面的操作能夠只運行一次是吧。
由于你是每次run的,也就是說每次會啟動一個JVM,那么就需要外部標識來判斷是否已運行過了,最簡單的方式就是寫一個文件,每次運行的時候讀取這個文件,存在則說明已經(jīng)運行過了。
其實很多分布式的程序基本都是使用這種方式,像hadoop好像就是,啟動的時候會保存一個文件,里面存儲了pid信息,重復啟動就會保存。

查看完整回答
反對 回復 2019-04-16
?
智慧大石

TA貢獻1946條經(jīng)驗 獲得超3個贊

你想要的是"不同時運行"嗎? linux常見的做法是/tmp放個文件鎖


查看完整回答
反對 回復 2019-04-16
  • 3 回答
  • 0 關注
  • 1376 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號