从java访问全局C变量

时间:2011-11-21 21:22:18

标签: java c multithreading native

我正在调用一个来自java线程的dll中的C函数。此C函数无限期运行并实时处理视频帧,输出每帧的结果。

我想生成另一个java线程来从处理函数中读取结果而不会中断该函数。我还需要实现某种线程控制来防止读取损坏的数据。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

全局由您的C环境控制。

我怀疑你应该这样做:

  1. 创建一个函数,该函数返回全局变量的值,并使用JNI从java调用它。
  2. 在C中实现同步内容。

答案 1 :(得分:0)

您可以将C函数嵌入到将由您的java线程启动的可执行文件中。 C函数可以将结果发布到管道中或通过套接字将它们发送到您的java线程。这使您可以灵活地在一台机器上运行C函数,在另一台机器上运行java线程。