作者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/cn.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