如下两个线程类:public class A implements Runnable{ private StringBuilder sb; @Override public void run() { //操作sb缓冲 ....... } public StringBuilder getsb() { return sb; } public void setsb(StringBuilder sb) { this.sb = sb; }}public class B implements Runnable{ //此处得到A类的对象a @Override public void run() { //操作a.getsb()缓冲 ....... }}如何能保证,A、B互斥?A的线程在操作sb的时候加锁,让B不能操作;或者B的线程在操作sb的时候加锁,让A不能操作始终只有一个线程可以操作sb!!
5 回答

鸿蒙传说
TA贡献1865条经验 获得超7个赞
synchronized或者ReentrantLock,synchronized前面有人给例子了,我这里给个ReentrantLock的例子:
ReentrantLock lock = new ReentrantLock();
lock.lock();
try {
// 这里是对sb的操作
} finally {
lock.unlock();
}
添加回答
举报
0/150
提交
取消