gpt4 book ai didi

java - 在 onPostExecute 中的 notify() 之前没有被线程锁定的对象

转载 作者:IT老高 更新时间:2023-10-28 20:43:46 26 4
gpt4 key购买 nike

我尝试在 onPostExecute 中通知适配器主类的 ListView ,但我收到错误:java.lang.IllegalMonitorStateException:object not locked by thread before notify()

@Override
protected void onPostExecute(String result) {
popularfragment.adapter.notifyDataSetChanged();
recentfragment.adapter.notifyDataSetChanged();
}

最佳答案

.notify() 方法必须从 synchronized 上下文中调用,即从 synchronized block 内调用。

java.lang.IllegalMonitorStateException当您在一个未用作您调用 notify 的同步块(synchronized block)的锁的对象上调用 .notify() 时,将引发此错误。例如,以下工作;

synchronized(obj){
obj.notify();
}

但这会抛出异常;

synchronized(obj){
// notify() is being called here when the thread and
// synchronized block does not own the lock on the object.
anotherObj.notify();
}

引用;

关于java - 在 onPostExecute 中的 notify() 之前没有被线程锁定的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24185921/

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