标题ReadWriteLock and ReentrantReadWriteLock
先来说一个小问题为什么要有锁机制:因为不同线程访问一个共有对象对其数据进行读写操作
//而读 写同时发生的时候就有可能出现数据读取错误
//写 写同时操作的时候也有可能导致数据错误
//但是 读 读操作发生不会导致错误的发生
所以这个类的语法就是
1.当进行读写操作不支持多个线程并发操作
2. 当进行写写操作不支持多个线程并发操作
3. 当进行读读操作不支持多个线程并发操作
而在实际的开发中往往是读取的操作占据绝大多数所以能很好地改善锁机制的低效率情况
ReentrantReadWriteLock 添加读取线程的锁
readWriteLock.readLock().lock();
try {
System.out.println(Thread.currentThread().getName() + "____当前数字是" + number);
}finally {
readWriteLock.readLock().unlock();
}
ReentrantReadWriteLock 添加写入线程的锁
readWriteLock.writeLock().lock();
try {
System.out.println(Thread.currentThread().getName() +"_____当前数字是" + ++number);
}finally {
readWriteLock.writeLock().unlock();
}
只要添加了这两个锁就能实现优化从而减少 读读的时候 锁机制