coroutines-kotlin
2
总安装量
2
周安装量
#71411
全站排名
安装命令
npx skills add https://github.com/spjoshis/claude-code-plugins --skill coroutines-kotlin
Agent 安装分布
opencode
2
gemini-cli
2
claude-code
2
github-copilot
2
codex
2
kimi-cli
2
Skill 文档
Kotlin Coroutines
Master asynchronous programming in Kotlin with coroutines, flows, and structured concurrency.
Core Concepts
Basic Coroutine
fun main() = runBlocking {
launch {
delay(1000L)
println("World!")
}
println("Hello")
}
Suspend Functions
suspend fun fetchUser(id: String): User {
delay(1000) // Simulating network call
return User(id, "John Doe")
}
fun main() = runBlocking {
val user = fetchUser("123")
println(user)
}
Async/Await
suspend fun loadData(): Data = coroutineScope {
val user = async { fetchUser() }
val posts = async { fetchPosts() }
Data(user.await(), posts.await())
}
Flow
fun simpleFlow(): Flow<Int> = flow {
for (i in 1..3) {
delay(100)
emit(i)
}
}
fun main() = runBlocking {
simpleFlow().collect { value ->
println(value)
}
}
Channels
fun main() = runBlocking {
val channel = Channel<Int>()
launch {
for (x in 1..5) channel.send(x * x)
channel.close()
}
for (y in channel) println(y)
}
Best Practices
- Use structured concurrency
- Handle exceptions properly
- Use flows for streams
- Leverage coroutine scope
- Use dispatchers appropriately
- Avoid GlobalScope
- Test coroutines properly