Scala、Playフレームワーク、およびMongoDB(ReactiveMongoをドライバとして使用)でWebアプリケーションを構築しています。アプリケーションアーキテクチャは、エンドツーエンドでノンブロッキングです。将来のコードで同期/ロックを使用する
コードの一部では、ScalaのパーサーコンビネータやScalaのリフレクションなど、スレッドセーフではないライブラリにアクセスする必要があります。現在、このような呼び出しはブロックに含まれています。
- をfuture-yコードで使用するときは、何か注意が必要ですか?
- パフォーマンスとユーザビリティの観点から、ではなく、ロック(
ReentrantLock
など)を使用する方が良いですか?
「将来のコード」の意味を理解するのに困っています – fge
@fge、コードは「未来」を多用しています。私はそれが文脈(Play、Reactive *など)から十分にはっきりしていると思ったが、そうではなかったようだ。 – missingfaktor
デフォルトの実行コンテキストでブロック操作を実行しないでください。 [この回答](http://stackoverflow.com/a/16834855/406435)が便利かもしれません。 – senia