gpt4 book ai didi

android - 协程限制?

转载 作者:行者123 更新时间:2023-12-02 12:52:37 27 4
gpt4 key购买 nike

我对协程有一些疑问:我可以并行启动大量的协程,工作繁重吗?

例如,我有一个对象列表,我想为每个对象做一些繁重的工作。

  • 我可以做一个 for 循环并一次为每个对象启动一个协程吗?
  • Coroutine如何并行处理大量工作?
  • 如果内存太低,Coroutine 会等待再启动另一个 Coroutine?
  • 例如,最好用 newFixedThreadPoolContext 来限制协程?

最佳答案

Can I launch a large numbers of Coroutines, with heavy work, in parallel?

是的,你可以。 Coroutines 非常轻量级。事实上,许多协程示例表明您可以一次启动数千个协程。

Can I do a For loop and launch a Coroutine for each object in one time ?

是的,你可以。虽然我不知道那会有多高效。

How Coroutine can handle a large number of work in parallel ?

协程具有 Dispatchers 的概念,它允许您配置线程。

If memory is too low, Coroutine will waits before launch another Coroutine ?

协程的行为类似于轻量级线程,因此内存管理由您决定。如果系统没有足够的内存,我不知道会阻止协程启动的内置机制。同样,协程是轻量级的,因此如果您无法启动协程,则可能出现了问题。

It is better to limit Coroutines with a newFixedThreadPoolContext for example ?

通过使用 newFixedThreadPoolContext,您并没有真正限制可以启动的协同程序的数量。您只是对将创建以启动协程的 ThreadPool 实现限制。同样来自 newFixedThreadPoolContext docs请注意,它将在未来被替换。

关于android - 协程限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59736855/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com