kotlin 如何中断线程
时间: 2023-12-22 16:56:56 浏览: 108
Kotlin实战:OleOle项目介绍
在 Kotlin 中,可以使用 `Thread.interrupt()` 方法来中断线程。当调用该方法时,会将线程的中断状态设置为 true。如果线程正在等待某个操作,如 I/O 操作或者等待锁,那么调用 `interrupt()` 方法将会中断该操作并抛出 `InterruptedException` 异常。
下面是一个简单的示例,演示如何中断线程:
```kotlin
fun main() {
val thread = Thread {
while (!Thread.currentThread().isInterrupted) {
println("Thread is running")
try {
Thread.sleep(1000)
} catch (e: InterruptedException) {
Thread.currentThread().interrupt()
}
}
}
thread.start()
Thread.sleep(5000)
thread.interrupt()
}
```
在这个示例中,我们创建了一个新的线程,并在其中执行一个无限循环,每秒钟打印一次消息。在主线程中,我们等待 5 秒钟,然后中断该线程。在线程的循环中,我们使用 `Thread.currentThread().isInterrupted` 来检查线程是否被中断,并在捕获 `InterruptedException` 异常时调用 `Thread.currentThread().interrupt()` 来重新设置线程的中断状态。
当我们运行这段代码时,可以看到线程在被中断后立即停止运行。
阅读全文