Android GlobalScope内的同步功能。启动(主):Kotlin
场景:让乐趣A和乐趣B成为两个函数。在A内部,我们调用B。B执行时间大约需要5秒,同时其他线程再次调用A,然后我得到ConcurrentModificationExceptionAndroid GlobalScope内的同步功能。启动(主):Kotlin,android,kotlin,kotlin-coroutines,Android,Kotlin,Kotlin Coroutines,场景:让乐趣A和乐趣B成为两个函数。在A内部,我们调用B。B执行时间大约需要5秒,同时其他线程再次调用A,然后我得到ConcurrentModificationException 如何同步它,以便一次一个线程可以执行B。我已经尝试使用@synchronise。由于我是kotlin的新手,请建议。问题似乎存在于fun B中,您可能在某些集合类型s.a.列表、堆栈中执行循环。。。以及删除/插入该集合类型的新元素 如果是这种情况,您应该使用迭代器循环,并且可以在迭代时删除/插入项。但如果一个线程正在循
如何同步它,以便一次一个线程可以执行B。我已经尝试使用@synchronise。由于我是kotlin的新手,请建议。问题似乎存在于fun B中,您可能在某些集合类型s.a.列表、堆栈中执行循环。。。以及删除/插入该集合类型的新元素 如果是这种情况,您应该使用迭代器循环,并且可以在迭代时删除/插入项。但如果一个线程正在循环,而另一个线程正在插入/删除项目,则需要使用@Synchronized fun B等同步对该集合类型的访问 互斥锁?请参阅更好地使用参与者序列化处理。favoriteContacts和result是全局变量还是局部变量?看起来有些全局性的东西被修改了rankedEvents.favorites等。。。
fun A(){
GlobalScope.launch(Main) {
val result = withContext(IO) {
B()
}
if (this@activity.isValid()) {
suggestedFeedItems = result
} else {
}
}
}
fun B(){
//some code that takes some time to execute
}