公司定製了乙個可以控制裝置的硬體,人家只支援socket,我用mina2做的客戶端連線,因為是多個人可以控制的所以硬體控制設定的連線只能有乙個,多個使用者用這個連線來控制裝置,用完鏈結放在快取裡面,超時自動斷掉,用的時候重新連線。
連線管理的**
public class manysocketpoolmangersingleton
public static void setpool(keyedobjectpoolpool)
private manysocketpoolmangersingleton()
public static synchronized manysocketpoolmangersingleton getinstance()
return instance;
}}
連線的建立
public class minaconnectionclient
public minaconnectionclient(int timeout)
public iosession create(string key)catch(exception e)catch(exception ee)
} return session; }
public iosession connection(string ip, int port)
//內部類,防止mina報沒在設定handler錯誤,也可以參照物com.dashu.visit.hardware.api.mina.oseamminaclienthandler寫乙個
private class iohander extends iohandleradapter {}
}
接受訊息處理
public class timeclienthander implements iohandler
@override
public void messagereceived(iosession arg0, object message) throws exception
接收訊息的快取類
public class datacache
array.push(s);
data.put(ip, array);
} public static listget(string ip)
} return list; }
}
快取的先進先出佇列類
public class stack
}/** 出棧,但不刪除 */
public t peek()
/** 出棧,刪除 */
public t pop()
/** 出棧,刪除 */
public t last()
/** 棧是否為空 */
public boolean empty()
/** 列印棧元素 */
public string tostring()
public listiteratorgetall()
測試讀寫的 **
public hardwarestatusforoseam control(string code,string ip)
//過濾掉沒用的其他資訊
if (responecontent.startswith("f3c7") && responecontent.startswith(sendvalid, 4))
}} catch (exception e) finally
} catch(exception e)
} return result; }
public static void main(string args) throws interruptedexception
string s1= "f3c7012c200913ac";
hardwarestatusforoseam result1 = socketexplainationutil.parecontent(s1);
system.out.println(result1.isopen());
}
多執行緒導致資料重複新增
多執行緒有序執行的方法!參考 多執行緒和執行緒池的總結以及常見的面試問題 1.測試用例 test public void testthread throws interruptedexception t1.start t1.join list.clear thread t2 new thread n...
tensorflow多執行緒預讀取資料
在一般的講解中,tensorflow使用多執行緒讀取資料都會涉及到兩個概念,檔名佇列和檔案佇列。將原本簡單的概念繞的很複雜,而且不同的部落格還相互抄,毫無自己的理解。其實檔名佇列完全沒有必要,只要執行緒能將資料預讀取到檔案佇列,其他的處理咋弄都行。下面是我想到的用法 import tensorflo...
Tensorflow的佇列多執行緒讀取資料
在tensorflow中,有三種方式輸入資料 1利用feed dict送入numpy陣列 2利用佇列從檔案中直接讀取資料 3預載入資料 其中第一種方式很常用,在tensorflow的mnist訓練原始碼中可以看到,通過feed dict 可以將任意資料送入tensor中。第二種方式相比於第一種,速度...