gpt4 book ai didi

java - 同步(this)如何工作?

转载 作者:行者123 更新时间:2023-12-01 19:41:04 24 4
gpt4 key购买 nike

我有一个类似这样的 fragment ,

MyServiceConnection obj = new MyServiceConnection();

class MyServiceConnection implements ServiceConnection {

@Override
public void onServiceDisconnected(ComponentName name) {
myNotificationBinder = null;
myBinderService.broadcastServiceIsDown();
}

@Override
public void onServiceConnected(ComponentName name, IBinderService service) {
synchronized(this) {
mNotificationBinder.broadcastServiceIsUp();
try {
notifyAll();
} catch(RemoteException e) {
Log.e(TAG, "Remote exception : " + e);
}
}
}
}
}

MyServiceConnection 类在我的项目中仅使用一个对象。考虑两个线程同时访问此 t1t2 但以不同的方式,例如,

t1 正在访问 onServiceConnected 并获取了 obj 上的锁。现在,在 t1onServiceConnected 中完成执行之前,线程 t2 是否能够访问 onServiceDisconnected

最佳答案

由于onServiceDisconnected没有同步,所以t2调用时不会被阻塞。同步仅影响在同一对象上同步的其他线程。除此之外,与synchronized关键字一起使用的对象没有任何特殊含义。

关于java - 同步(this)如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55383518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com