通知根据这一文件,使用wait
和notify
在科特林气馁:https://kotlinlang.org/docs/reference/java-interop.html正确实施的等待和科特林
的wait()/通知()
有效的Java项目69好心建议喜欢并发实用程序等待()和通知()。因此,这些方法不适用于任何类型的引用。
但是该文件没有提出任何正确的方法。
基本上,我想实现一个服务,它将读取输入数据并处理它们。如果没有输入数据,它会暂停自己,直到有人通知有新的输入数据。喜欢的东西
while (true) {
val data = fetchData()
processData(data)
if (data.isEmpty()) {
wait()
}
}
编辑:
我不想使用这些不推荐的方法(反模式),我真的想了解如何正确地做到这一点。
在我的情况下,fetchData
从数据库中读取数据,所以在我的情况下,不能使用队列。
您是否检查了有效Java项目69? – Pelocho
您可以使用Kotlin协同工具中的演员实施您的服务。它等待项目被发送到频道。更多信息在这里:https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md#actors – marstran
您可以将任何对象强制转换为java.lang.Object,并轻松实现这些反模式。 –