是否有任何领域的线程应该优于Coroutines?

时间:2018-02-28 21:43:11

标签: multithreading kotlin coroutine kotlin-coroutines

我刚刚谈了Kotlin的Coroutines,如果Coroutines总是可以取代Threads,或者也有可能存在缺点,那就会出现问题。

或者反过来说:是否有任何不应该使用Coroutines的区域?

1 个答案:

答案 0 :(得分:7)

协程可用于异步编程。当您编写的代码必须等待大部分时间用于某些外部事件时,例如它经常发生在现代连接的用户界面和面向微服务的后端应用程序中,那么协同程序和Kotlin暂停函数的概念让您自然地编写看起来易于理解的代码比具有显式线程的代码更具可伸缩性。

如果你正在编写某种计算,CPU密集型代码,那么你会发现多线程编程和并行的经典模式效果更好。

这并不意味着您不能使用协同程序来并行化某些CPU密集型应用程序,但是您不会从代码可读性或其性能中获益。