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

作者: JGC18 (JGC)   2015-05-28 15:11:46
各位好
我有一支java的程式放在某台設備上
該台設備有可能是linux or win的平台
使用者需要呼叫這支java去做某些事情後,並把結果回覆
但對方的程式可能使用非java語言,有可能是C、C#...
那他該如何來呼叫我,讓我幫他做一些事情後
並把結果回傳給他呢?
假設他通知我001,我去做action001, 以此類推。
我目前想到的是很笨的方法,IO。
利用檔案來互傳資料,但是就我認知
應該避免不必要的IO動作
所以不知道有沒有其它的建議讓我參考看看
感謝各位!!!
作者: omidofor (媽媽咪呀)   2015-05-28 15:20:00
直接用system call,然後讀standard output
作者: Killercat (殺人貓™)   2015-05-28 16:14:00
基本上最有效率的就是用C cross process lib然後用JNI去呼叫。不過已Java的架構來講,由於無法直接碰觸到記憶體位置,其實你會發現這不會省工....最多人用的應該是boost的interprocess lib我的案例的是在CPython跟C++之間synchttp://tinyurl.com/ptshloeJava的話 就把它包一層JNI 再用jobject傳回java層吧老實講pipeline效能也沒差到哪去,沒必要捨近求遠pipeline/AF_UNIX socket效能都不會太糟糕的

Links booklink

Contact Us: admin [ a t ] ucptt.com