2013-11-22 105 views
1

如何在JNI中創建線程?JNI線程創建

有什麼Java環境函數調用?或者我應該使用c + +線程?

我相信我應該使用pthread作爲一個普通的C++應用程序,但是這些創建線程會調用一些java回調,也許在同步方法中。

+0

在windows和linux中創建線程略有不同。在哪個環境中工作? – rachana

+0

兩個!我使用pthread作爲c代碼的線程庫。 – Victor

回答

3

本地線程和JNI沒有什麼特別之處。還有很多事情可能會出錯。

本地線程必須是attached才能調用任何Java方法。這是這一重要的API函數是:

jint AttachCurrentThread(JavaVM *vm, void **p_env, void *thr_args); 
jint DetachCurrentThread(JavaVM *vm); 

更多相關信息,請參閱here

所有其他的東西,如​​由JVM處理。