我正在为学校开发一个 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){...}
}
我正要使用 ReentrantReadWriteLock 矩阵来管理它,每个项目一个,但我意识到矩阵大小约为 10^3 X 10^3 所以我将拥有 100 万个锁!
你认为这是要走的路吗?(创建这么多锁可以吗?)
考虑到使用这个类的线程数被限制在一个小数 N(N 的范围从 2 到 8),你能找到一种更好的方法,它几乎只保留最小互斥但使用更少的锁吗?
感谢您的支持!