Windows中Java应用程序和C++应用程序之间的同步
Posted
技术标签:
【中文标题】Windows中Java应用程序和C++应用程序之间的同步【英文标题】:synchronization between a java app and C++ app in windows 【发布时间】:2013-11-19 13:38:35 【问题描述】:我有两个应用程序,一个是用 java 编写的,另一个是用 C++ 编写的(都在 windows 平台上)。
这两个应用程序都试图访问单个资源,我想放置某种同步机制。 我该怎么做?
有没有办法在 Java 代码中访问 Windows 内核对象,如互斥锁、事件、信号量并等待它?
解决此类问题的标准方法是什么?
感谢和问候 苏尼尔
【问题讨论】:
我天真的解决方案是通过本地网络与套接字通信。但是你没有得到原子操作..我很想看到“正确”的解决方案 好吧,对于特定于 windows 的 c++ 世界,您可以查看msdn on inter process synchronisation。但是,我不确定这些选项是否可以从 Java 轻松获得。 【参考方案1】:有几种同步方式:
通过 JNI(也称为本地方法)从 java 访问 IPC 同步原语 - Oracle's docs。 使用套接字发送/接收信号。 使用文件作为同步对象:Java 7 具有用于文件系统的全新 API - WatcherService can be used to see changes on FS。【讨论】:
以上是关于Windows中Java应用程序和C++应用程序之间的同步的主要内容,如果未能解决你的问题,请参考以下文章
写入在 Windows 下的 Java 应用程序中生成的 C++ 控制台应用程序