多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
如果很多的线程从一个数据结构中读取数据而很少修改其中的数据,可以使用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()` 得到一个写锁,但排斥所有其他的读操作和写操作。