我今天接受了一次面试。有人问我为什么Kotlin更好,我提到有了Kotlin,我们有了Coroutines,它可以更容易、更好地执行繁重的操作,但有了Threads(Java(,如果同时创建和运行多个线程,可能会导致内存不足问题他回答说,Java中的线程也可以这样做。我是一名初级开发人员,最近转到了kotlin,所以我对这方面的知识有限,我在互联网上找不到更多关于这方面的信息。有人能帮忙吗?
使用协程所能做的一切都可以用Java完成。推论不是魔术;他们在做你可以亲手做的事情。
要在纯Java中获得同样的正确性、简洁性和性能要困难得多。与必须用等效Java编写的内容相比,Coroutines使更容易完成所有这些事情。Coroutines并没有让任何新的东西成为可能,它们只是让构建和维护变得更容易。
子程序的性能比生成许多线程要好,因为它们在后台使用线程池,但线程池在纯Java(Executor(中可用。Kotlin文档将协同程序称为"coroutines";轻质螺纹";,但实际上,它们是从借来的Threads拼凑而成的。是的,它们比每个任务使用一个线程更轻。
与Java相比,协同程序的优势在于使用它们的直观语法。Java需要回调方法,这会导致嵌套块和代码的编写顺序与其执行顺序不同。