JNI中,C/C++代码里创建的资源不由Java GC处理,故这里的资源必须由C/C++代码明确释放.在JNI中,C/C++回调Java的方法是调用一个CallXXMethod函数来实现的,如果回调的方法结束,C/C++执行下一行代码. 故猜测,由C/C++创建的OS线程应该会在运行完run方法后释放,不然好像也没有其他合适的时间点来对线程进行释放了.因为按照语义的话,既然线程的任务已经完成,那线程还留着干什么,就应该被释放. 有些时候,我们需要维护一个线程池来减少创建和释放线程的开销,让一些线…