面试题-Kotlin该如何实现多线程同步
[TOC]
文章转自:https://blog.csdn.net/vitaviva/article/details/108554692
概述
多线程开发中,经常会遇到这样的需求:Task1、Task2 等多个任务并行执行,等待全部执行完成后,执行Task3。
我们在Kotlin种可以有多种方法实现,在这里一并列举一下:
- Thread.join
- Synchronized
- ReentrantLock
- BlockingQueue
- CountDownLatch
- CyclicBarrier
- CAS
- Future
- CompletableFuture
- Rxjava
- Coroutine
Task3基于 Task1、Task2返回的结果,拼接字符串,每个任务都通过sleep模拟耗时操作
1 | val task1: () -> String = { |
Thread.join()
Kotlin兼容Java,所以Java的所有工具都可以使用。本case中最简单的方式就是使用Thread的join方法实现同步:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 麦溪·在路上!
评论
ValineDisqus