0
点赞
收藏
分享

微信扫一扫

java并发之readlock writelock

舟海君 2022-08-02 阅读 99

package learnjson;



import java.util.concurrent.locks.Lock;

import java.util.concurrent.locks.ReentrantReadWriteLock;



public class BigPlay01 {

//readlock writelock

public static void main(String[] args) {



final MyPlay myPlay=new MyPlay();

for (int i = 0; i < 2; i++) {

new Thread(){

public void run(){

myPlay.get();

}

}.start();

}



for (int i = 0; i < 2; i++) {

new Thread(){

public void run(){

myPlay.put();

}

}.start();

}



}



}

class MyPlay {

private final ReentrantReadWriteLock readWriteLock=new ReentrantReadWriteLock();







public void get(){

readWriteLock.readLock().lock();

try {

System.out.println(Thread.currentThread().getName()+" read start");

Thread.sleep(1000);

System.out.println(Thread.currentThread().getName()+" read end");

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

finally {

readWriteLock.readLock().unlock();

}

}





public void put(){

readWriteLock.writeLock().lock();

try {





System.out.println(Thread.currentThread().getName()+" write start");

Thread.sleep(1000);

System.out.println(Thread.currentThread().getName()+"write end ");

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}



finally {

readWriteLock.writeLock().unlock();

}

}



}

举报

相关推荐

0 条评论