SoneoneはAtomicInteger
がJNIを使用して実装されていると言いました。したがって、synchonizationよりもはるかに高速です。これは本当ですか?AtomicIntegerはJNIベースで実装されていますか?
答えて
JNIに基づいて実装される可能性は低いですが、これは重大なオーバーヘッドを意味するためです。最後に、OpenJDKの実装は、ほとんどがJVMプリミティブ(JVMのネイティブコードで特別に実装されたメソッド呼び出し)として実装されているsun.misc.Unsafe
のメソッドに基づいています。
+1:私はそのJVMイントリンシクスと呼ばれると思います。 Unsafeの多くの「ネイティブ」メソッドは、ネイティブコードにコンパイルされると効果的にインライン展開されます。 –
重要な注意点は、sun.misc.Unsafeを使用するように(APIでは)定義されていないため、Sun/Oracle/OpenJDK以外のVMはAtomicIntegerをまったく異なる方法で実装する可能性があります。 AtomIntegerを使用しない場合は、すべてのVMでうまく動作する可能性が高いため、AtomicIntegerを使用することをお勧めします。 –
AtomicIntegerは同期のロックメカニズムを呼び出さないため、適切な状況でパフォーマンス上の利点が得られます。
- 1. JVMでJNIベースの.jarを実行中
- 2. TinyBベースのアプリケーション - サポートされていないJNIのバージョン0x00010008
- 3. 良い数学的な実装はJavaScriptで実装されていますか?
- 4. restサービスは、Eclipseでは実装されていてもTomcatでは実装されていません
- 5. 方法はJNIで識別されていますか?
- 6. List.Foreach(Delegate)はMonoで実装されていますか?
- 7. 抽象クラスはC#で実装されていますか?
- 8. send()はOpenMPIでどこに実装されていますか?
- 9. XNAはどの言語で実装されていますか?
- 10. AudioQueueEnqueueBufferWithParametersはMonotouchで実装されていますか?
- 11. NNpackはテンソルフローで実装されていますか?
- 12. FIFOベースのキュー実装ですか?
- 13. 私の実装は正しく実装されていますか?
- 14. Symfony2 ACLはサービスとして実装されていますか?
- 15. 機能は実装されていないマクロですか?
- 16. android onBindViewHolderは実装されていなくても実装されています
- 17. @privateはどのように実装されていますか?
- 18. BigDecimalはどのように実装されていますか?
- 19. HttpSessionはどのように実装されていますか?
- 20. removeEventListenerはどのように実装されていますか?
- 21. Scalaz Bind.bindはどこに実装されていますか?
- 22. 遅延ステートメントはどこに実装されていますか?
- 23. マルコフランダムフィールドはOpenCVに実装されていますか?
- 24. JavaのLinkedListにはデフォルトイテレータが実装されていますか?
- 25. INativeElementViewはどのように実装されていますか?
- 26. PTRACE_SINGLESTEPはどのように実装されていますか?
- 27. インプレースシャッフルのこの実装は「統一されていますか?
- 28. __aeabi_f2lzはどこに実装されていますか?
- 29. テンソルフローはどのように実装されていますか?
- 30. \ bはどのように実装されていますか?
実際に「JNI」とか、「ネイティブコード」と言われましたか?大きな違いがあります。 –
違いは何ですか? – user705414
JNIは* external *ネイティブコードと相互運用する方法です。このケースでは、コードがJVMの一部であると期待しています。したがって、多くのフープを実行する必要はありません。 –