通知根據這一文件,使用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,並輕鬆實現這些反模式。 –