1

各スレッドがdbにデータを書き込むJavaでマルチスレッドアプリケーションを設計するためのアルゴリズムを探しています。1秒あたりにdbに書き込まれるレコードの数を制御したいと思います。

アプリケーションはRPS(records per second)パラメーターを取得し、それらの多くの負荷をほぼ生成します。

4

2 に答える 2

4

外部ライブラリを使用できる場合、guavaにはRateLimiterクラスがあり、おそらくあなたが求めていることを実行します。

レートリミッターは、一部の物理リソースまたは論理リソースにアクセスするレートを制限するためによく使用されます。これは、レートではなく同時アクセスの数を制限するセマフォとは対照的です。

于 2013-02-26T19:31:44.250 に答える
1

許可オブジェクトの を作成し、BlockingQueue追加の許可の RPS 数を 1 秒に 1 回キューに追加する追加のヘルパー スレッドを持つことができます。スレッドの書き込みはキューでブロックされ、許可をキューの先頭から正常にポップするまで書き込みを行いません。

于 2013-02-26T19:28:21.350 に答える