Hel*_*rld 4 kotlin kotlinx.coroutines
Kotlin 中是否有与 C# 的 Semaphore/SemaphoreSlim 类型等效的类型?我想将它与协同例程(非阻塞)一起使用。即WaitOneAsync()。
kotlinx-coroutines现在已经有一个成熟的Semaphore班级了。
您可以按如下方式使用它:
import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.sync.Semaphore
import kotlinx.coroutines.sync.withPermit
suspend fun doConcurrently(list: List<Something>) {
val semaphore = Semaphore(4) // number of permits is 4
list
.map { async { semaphore.withPermit { /* do something */ } } }
.awaitAll()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1513 次 |
| 最近记录: |