【发布时间】:2014-05-02 19:06:04
【问题描述】:
在我们的项目中,一些代码是本机的,并由 JNI 调用,所以一切看起来都很好,除非我们决定并行运行一些调用,但问题(不清楚的事情)是要么通过 Java 运行线程,要么线程?!
我们更喜欢 pthread,因为它具有更好的管理和功能,但问题是。
假设本机代码启动了一个 pthread,所以我们需要 pthread 引用才能用另一种方法取消/退出线程,所以第一个问题是,我如何将 pthread id 重新设置为 java 代码,是有可能,pthread id 是 int 吗?
native int start_thread();
下一个问题是,是否可以将 Java 对象(接口)传递给 pthread 而不是本地方法?像这样的
native int start_thread(pthread_start ref);//where pthread_start is a java interface with one method, like Runnable
最后一个问题,一旦我们得到 pthread 引用,是否可以将它传递给另一个本地方法以退出/取消它?
native void kill_thread(int pthread_id);
【问题讨论】:
标签: java c++ multithreading java-native-interface pthreads