[問題] 同台設備,如何不同process資料互傳

看板java作者 (JGC)時間10年前 (2015/05/28 07:11), 編輯推噓1(109)
留言10則, 2人參與, 最新討論串1/1
各位好 我有一支java的程式放在某台設備上 該台設備有可能是linux or win的平台 使用者需要呼叫這支java去做某些事情後,並把結果回覆 但對方的程式可能使用非java語言,有可能是C、C#... 那他該如何來呼叫我,讓我幫他做一些事情後 並把結果回傳給他呢? 假設他通知我001,我去做action001, 以此類推。 我目前想到的是很笨的方法,IO。 利用檔案來互傳資料,但是就我認知 應該避免不必要的IO動作 所以不知道有沒有其它的建議讓我參考看看 感謝各位!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.52.10.190 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1432797108.A.D18.html

05/28 15:20, , 1F
直接用system call,然後讀standard output
05/28 15:20, 1F

05/28 16:14, , 2F
基本上最有效率的就是用C cross process lib
05/28 16:14, 2F

05/28 16:14, , 3F
然後用JNI去呼叫。不過已Java的架構來講,由於無法直接
05/28 16:14, 3F

05/28 16:14, , 4F
碰觸到記憶體位置,其實你會發現這不會省工....
05/28 16:14, 4F

05/28 16:15, , 5F
最多人用的應該是boost的interprocess lib
05/28 16:15, 5F

05/28 16:15, , 6F
我的案例的是在CPython跟C++之間sync
05/28 16:15, 6F

05/28 16:16, , 7F

05/28 16:17, , 8F
Java的話 就把它包一層JNI 再用jobject傳回java層吧
05/28 16:17, 8F

05/28 16:17, , 9F
老實講pipeline效能也沒差到哪去,沒必要捨近求遠
05/28 16:17, 9F

05/28 16:18, , 10F
pipeline/AF_UNIX socket效能都不會太糟糕的
05/28 16:18, 10F
文章代碼(AID): #1LPh-qqO (java)
文章代碼(AID): #1LPh-qqO (java)