存在多个线程操作同一个对象的时候,只想要某一个时刻只有一个线程读取或者设置该对象的值。那么就可以对该对象的get和set方法加上同一个对象锁🔒,这样线程A在拿到🔒后,别的线程只能等待,直到A读完或者写完该对象,释放🔒。
private voliate boolean mData;
private Object mLock = new Object();
public boolean getData(){
synchronized(mLock){
return mData;
}
}
public void setData(boolean data){
synchronized(mLock){
mData = data;
}
}