ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
如果很多的线程从一个数据结构中读取数据而很少修改其中的数据,可以使用ReentrantReadWriteLock读/写类来操作数据结构。读和写必须是互斥访问。下面提供使用该类的步骤: 1)创建ReentrantReadWriteLock对象 ``` private ReentrantReadWriteLock rwl = new ReentrantWriteLock(); ``` 2)抽取读锁和写锁 ``` private Lock readLock = rwl.readLock(); private Lock writeLock = rwl.writeLock(); ``` 3)对所有的获取方法加锁 ``` public duble getName() { readLock.lock(); try {...} finally { readLock.unlock(); } } ``` 4)对所有修改方法加锁 ``` public duble setName() { writeLock.lock(); try {...} finally {writeLock.unlock(); } } ``` * java.util.concurrent.locks.ReentrantReadWriteLock 5.0 * `Lock readLock()` 得到一个可以被多个读操作共用的读锁,但会排斥所有的写操作。 * `Lock writeLock()` 得到一个写锁,但排斥所有其他的读操作和写操作。