我有必須解決以下問題:保持C++對象,利用其方法取決於UI
我有與創建一個對象,並使用該對象的方法本地方法的一個java。 這是我的Java代碼: 我有一個名爲IssmJni一個java文件,它包含一個本地方法:在我的主類
public static native long fac(long n);
static {
System.loadLibrary("FacLib");
}
public static long facIterative(long n)
{
return fac(n);
我有這樣的:
long result = IssmJni.facIterative(Long.parseLong(input));
System.out.println(result);
這是我的C++代碼: 主文件:
static jlong factorial(JNIEnv *env, jclass clazz, jlong n)
{
fac *f = new fac();
jlong result = (jlong) (f->factorial(n));
delete(f);
return (jlong) result;
}
頭文件:
class fac
{
public:
long factorial(long n);
};
fac.cpp:
#include "com_lan_factorial_FacLib.h"
#include "fac.h"
long fac::factorial(long n)
{
long f = 1;
long i;
for(i = 1; i <= n; i++)
{
f *= i;
}
return f;
}
一切正常,那麼什麼發生的是,用戶界面將養活一個號碼,稱爲C++代碼,並生成一個新的對象調用FAC,以及使用該方法階乘一流的fac。 by this line
fac * f = new fac(); jlong result =(jlong)(f-> factorial(n));
我想要的是保持相同的對象fac,但利用不同輸入的因子方法。我試圖遠離pthread,因爲它太複雜了。有沒有一種方法可以創建另一個Java線程,並在整個應用程序的整個過程中保持此對象的活動狀態,並且每當我有新的用戶輸入時使用該因子。那麼當應用程序死亡時擺脫這個對象?
總之,我想保留對象fac的1個實例,並且多次使用因子方法。沒有本地pthread可能嗎? 謝謝