由於Java是一種多線程語言,幾個線程可能同時發出對一個固有方法的調用(若另一個線程發出調用,固有方法可能在運行期間暫停)。
此時,完全要由程序員來保證固有調用在多線程的環境中安全進行。例如,要防范用一種未進行監視的方法修改共享數據。
此時,我們主要有兩個選擇:將固有方法聲明為“同步”,或在固有方法內部采取其他某些策略,確保數據處理正確地並發進行。
此外,絕對不要通過線程傳遞JNIEnv,因為它指向的內部結構是在“每線程”的基礎上分配的,而且包含了只對那些特定的線程才有意義的信息。