ReadWriteLock 读写锁
package com
.atguigu
.juc
;
import java
.util
.concurrent
.locks
.ReadWriteLock
;
import java
.util
.concurrent
.locks
.ReentrantReadWriteLock
;
public class TestReadWriteLock {
public static void main(String
[] args
) {
ReadWriteLockDemo rw
= new ReadWriteLockDemo();
new Thread(new Runnable() {
@Override
public void run() {
rw
.set((int)(Math
.random() * 101));
}
}, "Write:").start();
for (int i
= 0; i
< 100; i
++) {
new Thread(new Runnable() {
@Override
public void run() {
rw
.get();
}
}).start();
}
}
}
class ReadWriteLockDemo{
private int number
= 0;
private ReadWriteLock lock
= new ReentrantReadWriteLock();
public void get(){
lock
.readLock().lock();
try{
System
.out
.println(Thread
.currentThread().getName() + " : " + number
);
}finally{
lock
.readLock().unlock();
}
}
public void set(int number
){
lock
.writeLock().lock();
try{
System
.out
.println(Thread
.currentThread().getName());
this.number
= number
;
}finally{
lock
.writeLock().unlock();
}
}
}
转载请注明原文地址:https://tech.qufami.com/read-23679.html