Scala、Play フレームワーク、および MongoDB (ドライバーとして ReactiveMongo を使用) を使用して Web アプリを構築しています。アプリケーション アーキテクチャは、エンド ツー エンドでノンブロッキングです。
コードの一部では、Scala のパーサー コンビネーターや Scala のリフレクションなど、スレッドセーフではないライブラリにアクセスする必要があります。現在、そのような呼び出しをsynchronized
ブロックで囲んでいます。2 つの質問があります。
synchronized
future-y コードを使用する際に注意すべき点はありますか?- パフォーマンスと使いやすさの両方の観点から、
ReentrantLock
よりもロック ( など) を使用する方が良いですか?synchronized