官术网_书友最值得收藏!

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.
主站蜘蛛池模板: 玛曲县| 巴青县| 六盘水市| 长沙县| 阳高县| 霍山县| 永胜县| 太原市| 新泰市| 吕梁市| 汾西县| 留坝县| 长岭县| 闸北区| 内丘县| 南投市| 阿坝| 威信县| 广饶县| 屏边| 三门峡市| 额济纳旗| 永登县| 长汀县| 贵溪市| 子洲县| 达孜县| 宁城县| 武陟县| 宣威市| 西贡区| 宾阳县| 哈巴河县| 鹿泉市| 兴海县| 峨眉山市| 环江| 太仓市| 太保市| 银川市| 山丹县|