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

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.
主站蜘蛛池模板: 赞皇县| 曲靖市| 大同县| 铜山县| 桐乡市| 同德县| 汾阳市| 文成县| 鹰潭市| 若尔盖县| 尼勒克县| 临夏市| 河北省| 江源县| 铜山县| 崇明县| 稷山县| 策勒县| 保康县| 南汇区| 安龙县| 亚东县| 红安县| 延川县| 栖霞市| 保德县| 杂多县| 如东县| 双江| 水城县| 灵石县| 乐业县| 东乌珠穆沁旗| 道真| 潜江市| 棋牌| 股票| 汝阳县| 望谟县| 麻江县| 那坡县|