以下是一些常见的阻塞函数示例:
1. **`Thread.sleep()`**
阻塞当前线程一段时间。
```kotlin
Thread.sleep(1000) // 阻塞线程 1 秒
```
2. **`InputStream.read()`**
从输入流中读取数据时会阻塞,直到有数据可用或流结束。
```kotlin
val inputStream = FileInputStream("file.txt")
val data = inputStream.read() // 阻塞直到读取到数据
```
3. **`Socket.accept()`**
等待客户端连接时会阻塞。
```kotlin
val serverSocket = ServerSocket(8080)
val clientSocket = serverSocket.accept() // 阻塞直到有客户端连接
```
4. **`Future.get()`**
等待异步任务完成时会阻塞。
```kotlin
val future = executor.submit { /* some task */ }
val result = future.get() // 阻塞直到任务完成
```
5. **`CountDownLatch.await()`**
等待计数器归零时会阻塞。
```kotlin
val latch = CountDownLatch(1)
latch.await() // 阻塞直到计数器为 0
```
这些函数会阻塞线程,导致其他任务无法在同一线程上执行。与之相对,Kotlin 的挂起函数(如 `delay`)是非阻塞的。