比如有个类A,class A{ private int a; public synchronized int get() { return this.a; } public synchronized void set(int a) { this.a = a; }}我想问,假如这个类的对象被多个线程共享,比如t1,t2,那么t1进入set方法的时候,t2能否进入get方法?我只知道不能同时进入get 或 set
3 回答

噜噜哒
TA贡献1784条经验 获得超7个赞

斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
你想线程安全,是不可能达到你想要的效果的,但是读写锁分离锁可以达到多个线程可以同时进入get方法,
读写锁在java中的代码如下:
private static final ReentrantReadWriteLock reentrantLock = new ReentrantReadWriteLock(true);
private static final ReadLock readLock = reentrantLock.readLock();
private static final WriteLock writeLock = reentrantLock.writeLock();
添加回答
举报
0/150
提交
取消