用协程优化

时间:2020-10-26 16:20:44

标签: kotlin kotlin-coroutines coroutine

我在Kotlin中有简单的代码,他用okhttp lib列出了请求(150),并使用JSOUp解析了每个HTML结果。

我使用协程,但是我不明白,有或没有协程的时间都是相同的(23秒)

也许我做得不好?还是http请求受限制?

我的代码:

fun parse(list: ArrayList<ChampionBean>) {

    runBlocking {
        list.forEach {
            launch {
                   val response = requestWithOkhttp(it.url)
                   val doc = Jsoup.parse(response.body?.string())
                   response.close()
                   parsedocwithJsoup(doc, it)                 
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我只添加Dispatchers.Default即可。 7秒,而不是23秒。 我不知道为什么,默认调度程序不是默认调度程序。 该代码在Intellij中的主方法中运行,没有UI

 fun parse(list: ArrayList<ChampionBean>) {
    
        runBlocking {
            list.forEach {
                launch(Dispatchers.Default) {
                       val response = requestWithOkhttp(it.url)
                       val doc = Jsoup.parse(response.body?.string())
                       response.close()
                       parsedocwithJsoup(doc, it)                 
                }
            }
        }
    }