私はJNIを使用してJavaでラップするC++でAPIを開発する初期段階にあります。ネイティブコードはWinAPIを使用してソケットリスナスレッドを作成します。このスレッドは無限に実行されるため、プログラムは無期限に開いています(テスト済みでうまく動作します)。JNI - ネイティブスレッドの実行が終了する前にJavaが終了する
しかし、Javaでこのコードを呼び出そうとすると、実行中のスレッドを無視して、JVMがメインの最後に到達するとJVMは終了します。少しの研究で、Javaはスレッドが「ユーザースレッド」ではなくデーモンだと考えるかもしれないと示唆しています。しかし、そうであれば、実際にJavaがユーザースレッドであることを納得させる方法を理解することはできません。
誰かがこれについて手掛かりを持っていますか?