Java 对一个类的两个实例使用jni

Java 对一个类的两个实例使用jni,java,synchronization,java-native-interface,Java,Synchronization,Java Native Interface,我有一个java类,这个类通过jni连接到目标系统。已加载系统的库。加载。当我使用一个实例和一个目标时,一切都很好。但我尝试使用类的两个实例,这些实例将连接到两个不同的目标。例如InstanceA连接到TargetA,InstanceB连接到TargetB。但是当InstanceB连接到TargetB时,它会按预期覆盖InstanceA的变量 我认为我可以在jni中使用线程,但有一些回调方法是由目标调用的,回调方法参数中没有特定的值来确定哪些线程工作 我如何处理这个问题?有什么想法吗?很明显,您

我有一个java类,这个类通过jni连接到目标系统。已加载系统的库。加载。当我使用一个实例和一个目标时,一切都很好。但我尝试使用类的两个实例,这些实例将连接到两个不同的目标。例如InstanceA连接到TargetA,InstanceB连接到TargetB。但是当InstanceB连接到TargetB时,它会按预期覆盖InstanceA的变量

我认为我可以在jni中使用线程,但有一些回调方法是由目标调用的,回调方法参数中没有特定的值来确定哪些线程工作


我如何处理这个问题?有什么想法吗?

很明显,您的Java或本机数据是静态的,不应该是静态的。

我对您的操作感到困惑,因为它会按预期覆盖InstanceA的变量。发布类InstanceA/InstanceB的代码,以便我们可以查看。你能澄清一下你的JNI线程是什么意思吗?你说的是Java线程吗?或者JNI代码中的线程?抱歉@GuillaumePolet。你说得对。这是一个错误的句子。我才意识到。当我复习这个问题时,我改了一些句子,忘了改这个。我现在可以看看我的问题,看看这个奇怪的句子。真可惜。。。。我解决了这个问题,并将分享解决方案。你说得对。是我的错。我必须把密码贴在这里。因此,没有任何静态变量/方法。只是同事们没有设定结构的指针。