0
点赞
收藏
分享

微信扫一扫

java readlock实例2

金穗_ec4b 2022-09-23 阅读 230

import java.util.concurrent.locks.Lock;

import java.util.concurrent.locks.ReadWriteLock;

import java.util.concurrent.locks.ReentrantReadWriteLock;





public class TableControl {





private ReadWriteLock readWriteLock = new ReentrantReadWriteLock();;





private int i = 0;





public void get() {

System.out.println(i);

try {

Thread.sleep(10000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}



public void add(int v) {

i += v;

System.out.println(i);

try {

Thread.sleep(10000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}





public Lock readLock() {

return readWriteLock.readLock();

}





public Lock writeLock() {

return readWriteLock.writeLock();

}



}


















public class TestMain implements Runnable{




TableControl tc=new TableControl();





public static void main(String args[]){


TestMain tm=new TestMain();
Thread t1 =new Thread(tm);
Thread t2 =new Thread(tm);


t1.start();
t2.start();


}




@Override
public void run() {
tc.readLock().lock();
tc.get();
tc.readLock().unlock();
tc.writeLock().lock();
tc.add(100);
tc.writeLock().unlock();
}


}

举报

相关推荐

0 条评论