最終更新:2013-12-25 (水) 13:45:01 (3773d)  

JNI/スレッド
Top / JNI / スレッド

http://docs.oracle.com/javase/jp/6/technotes/guides/jni/spec/invocation.html

メモ

  • JNI インタフェースポインタ (JNIEnv) は、現在のスレッドでのみ有効です。別のスレッドが Java VM にアクセスする必要がある場合、これは最初に AttachCurrentThread() を呼び出し、それ自体を VM に接続し JNI インタフェースポインタを取得する必要があります。一度 VM に接続されると、ネイティブスレッドはネイティブメソッド内で実行中の普通の Java スレッドのように機能します。ネイティブスレッドは、それ自体を分離するために DetachCurrentThread?() を呼び出すまで VM に接続されたままになります。
  • 接続されたスレッドには、相当量の作業を実行するのに十分なスタック領域が必要です。スレッドごとのスタック領域の割り当ては、オペレーティングシステム固有です。たとえば、pthread を使用する場合は、pthread_create への pthread_attr_t? 引数でスタックサイズを指定することができます。