私は、マルチスレッド プログラムを扱う必要がある学校向けの Java プロジェクトに取り組んでいます。基本的に同時アクセスを管理する必要がある値のマトリックスである多くのスレッド間で共有されるクラスが必要です。それは次のようになります。
public class CacheMatrix{
private MyType[][] cachedItems;
public CacheMatrix(int size){
this.cachedItems = new MyType[size][size];
}
public MyType readItem(int x, int y){...}
public void storeItem(int x, int y, MyType item){...}
}
各項目に 1 つずつ、ReentrantReadWriteLock のマトリックスを使用してそれを管理しようとしていましたが、マトリックスのサイズが約 10^3 X 10^3 であることに気付きました。
これが進むべき道だと思いますか?(そんなに多くのロックを作成しても大丈夫ですか?)
このクラスを使用するスレッドの数が少数の N (N の範囲は 2 から 8) に制限されていることを考慮して、最小の相互排除のみを保持し、ロックの使用を減らすより良い方法を見つけることができますか?
ご支援ありがとうございます!