最快的,socket還要用占系統(tǒng)的端口,
專注于為中小企業(yè)提供成都網(wǎng)站制作、網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)臨渭區(qū)免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。
其實很簡單,java程序啟動是,先產(chǎn)生一個.lock的文件,并對此文件加鎖,另一個就無法獲得鎖,聽上去很復雜,其實實現(xiàn)很簡單。程序如下
private boolean checkLock(){
FileOutputStream fo = null;
File file = new File(".lock");
try {
fo = new FileOutputStream(file);
//加鎖,如果程序已經(jīng)啟動就無法獲得鎖
lock = fo.getChannel().tryLock();
if (lock == null) {
logger.warn("Warning Could not start epayment. this application is still alive.");
return false;
}else{
return true;
}
} catch (FileNotFoundException e) {
logger.error("checkSftp: lock file can't be created.error:" + e);
return false;
}catch (IOException e) {
logger.error("checkSftp: lock file can't be created.error:" + e);
return false;
}
}
你可以加個全局成員變量,表示上次執(zhí)行的結果。方法內檢測如果結果為空,則執(zhí)行查詢。否則直接返回變量的值。
s[i].length()!=0
i++;
一個是你條件的問題,二個是你越界的問題
加全局變量控制嘛。
demo:
public void add(Boolean flag)
{
if(flag==false)
{
//-------
your code here
//-----------
//-----after your code ----
flag=true;
//--------
}
}
public static void main(String args[])
{
Boolean flag=false;
add(flag);
......
add(flag);
}