Java 如何创建本机线程并与主线程通信

Java 如何创建本机线程并与主线程通信,java,android,c++,java-native-interface,native,Java,Android,C++,Java Native Interface,Native,我有一个android项目,它需要UI(主)线程和JNI线程之间的通信 我知道如何从JNI编写和调用方法,但不知道如何创建本机线程 假设我的java线程(主线程),在应用程序触发和调用构造函数的开始,它将构造按钮和布局,还将构造一个本机线程。本机线程将启动,但执行睡眠以等待事件 一旦用户点击一个按钮,这个发送信号将发送到本机线程,本机线程将执行一些操作,例如,将字符串helloworld返回到主线程。所以我想必须要同步数据 我试着找一个例子,但是没有。 我们将非常感谢您的帮助。示例代码会很好,t

我有一个android项目,它需要UI(主)线程和JNI线程之间的通信

我知道如何从JNI编写和调用方法,但不知道如何创建本机线程

假设我的java线程(主线程),在应用程序触发和调用构造函数的开始,它将构造按钮和布局,还将构造一个本机线程。本机线程将启动,但执行睡眠以等待事件

一旦用户点击一个按钮,这个发送信号将发送到本机线程,本机线程将执行一些操作,例如,将字符串helloworld返回到主线程。所以我想必须要同步数据

我试着找一个例子,但是没有。
我们将非常感谢您的帮助。示例代码会很好,ty。

我不会将这些东西混合在一起,只将代码的必要部分提取到JNI,然后在Java代码中从线程调用它们。否则,您能否提供一些示例代码来创建JNI线程呢?我同意Vladimir的观点,用本机代码创建线程要比用Java创建线程复杂得多。我认为你应该创建一个java线程,它接收按钮被击中的信息,将它发送到本地代码,并在收到来自原生方法的结果后通知主线程。但是C++代码复杂,几乎是程序本身,所有java都是在一个数字中输入的,C++代码将经过一个完整的计算过程并返回一个缓冲区,这就是为什么我希望C++代码在线程中生存,而不是java代码。任何建议,我看pthand,不知道他们是什么,所以我同意C++线程是太丑陋和复杂。所以我想开始简单,让我说,一旦我的应用程序运行,我将创建一个p螺纹在C++中,这个线程将等待一个输入,让用户输入10,并按下一个按钮,称为解决,这将唤醒C++线程并返回字符串HeloRoWord 10,如果输入为5,则它将是HeloWord 5。一旦它返回这样的字符串,它就会回到睡眠状态。这个C++线程一直存在,直到我的应用程序关闭。如果我能做到这一点,问题就基本上解决了。