作者JGC18 (JGC)
看板java
標題[問題] 同台設備,如何不同process資料互傳
時間Thu May 28 15:11:46 2015
各位好
我有一支java的程式放在某台設備上
該台設備有可能是linux or win的平台
使用者需要呼叫這支java去做某些事情後,並把結果回覆
但對方的程式可能使用非java語言,有可能是C、C#...
那他該如何來呼叫我,讓我幫他做一些事情後
並把結果回傳給他呢?
假設他通知我001,我去做action001, 以此類推。
我目前想到的是很笨的方法,IO。
利用檔案來互傳資料,但是就我認知
應該避免不必要的IO動作
所以不知道有沒有其它的建議讓我參考看看
感謝各位!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.52.10.190
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1432797108.A.D18.html
1F:推 omidofor: 直接用system call,然後讀standard output 05/28 15:20
2F:→ Killercat: 基本上最有效率的就是用C cross process lib 05/28 16:14
3F:→ Killercat: 然後用JNI去呼叫。不過已Java的架構來講,由於無法直接 05/28 16:14
4F:→ Killercat: 碰觸到記憶體位置,其實你會發現這不會省工.... 05/28 16:14
5F:→ Killercat: 最多人用的應該是boost的interprocess lib 05/28 16:15
6F:→ Killercat: 我的案例的是在CPython跟C++之間sync 05/28 16:15
8F:→ Killercat: Java的話 就把它包一層JNI 再用jobject傳回java層吧 05/28 16:17
9F:→ Killercat: 老實講pipeline效能也沒差到哪去,沒必要捨近求遠 05/28 16:17
10F:→ Killercat: pipeline/AF_UNIX socket效能都不會太糟糕的 05/28 16:18