- Learning Concurrency in Kotlin
- Miguel Angel Castiblanco Torres
- 198字
- 2021-08-05 10:46:44
Readable
Concurrent code in Kotlin is as readable as sequential code. One of the many problems with concurrency in other languages like Java is that often it's difficult to read, understand, and/or debug concurrent code. Kotlin's approach allows for idiomatic concurrent code:
suspend fun getProfile(id: Int) {
val basicUserInfo = asyncGetUserInfo(id)
val contactInfo = asyncGetContactInfo(id)
createProfile(basicUserInfo.await(), contactInfo.await())
}
By convention, a function that is going to run concurrently by default should indicate this in its name, either by starting with async or ending in Async.
This suspend method calls two methods that will be executed in background threads and waits for their completion before processing the information. Reading and debugging this code is as simple as it would be for sequential code.
In many cases, it is better to write a suspend function and call it inside an async {} or launch {} block, rather than writing functions that are already async. This is because it gives more flexibility to the callers of the function to have a suspend function; that way the caller can decide when to run it concurrently, for example. In other cases, you may want to write both the concurrent and the suspend function.
推薦閱讀
- JBoss Weld CDI for Java Platform
- Mastering Entity Framework Core 2.0
- Mastering AWS Lambda
- JavaScript 程序設計案例教程
- 微服務從小白到專家:Spring Cloud和Kubernetes實戰
- Learning PHP 7
- Mastering C++ Multithreading
- Hands-On GUI Programming with C++ and Qt5
- Modern C++ Programming Cookbook
- Qlik Sense? Cookbook
- C++ System Programming Cookbook
- Julia數據科學應用
- 基于MATLAB的控制系統仿真及應用
- HikariCP數據庫連接池實戰
- 計算機應用基礎(Windows 7+Office 2010)