Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 是否有可能实现与Java相同的协同程序效率?_Android_Multithreading_Kotlin_Kotlin Coroutines - Fatal编程技术网

Android 是否有可能实现与Java相同的协同程序效率?

Android 是否有可能实现与Java相同的协同程序效率?,android,multithreading,kotlin,kotlin-coroutines,Android,Multithreading,Kotlin,Kotlin Coroutines,我今天有个面试。有人问我为什么Kotlin更好,我提到,有了Kotlin,我们就有了协程,这使得执行繁重的操作更容易、更好,但有了ThreadsJava,如果同时创建和运行多个线程,可能会导致内存不足问题。他回答说,Java中的线程也可以实现同样的功能。 我是一名初级开发人员,最近转学了kotlin,所以我对这方面的知识有限,在互联网上找不到更多关于这方面的信息。有人能帮上忙吗?使用协同程序所能做的一切都可以用Java来完成。协同程序不是魔法;他们在做你可以手工做的事情 要在纯Java中获得相同

我今天有个面试。有人问我为什么Kotlin更好,我提到,有了Kotlin,我们就有了协程,这使得执行繁重的操作更容易、更好,但有了ThreadsJava,如果同时创建和运行多个线程,可能会导致内存不足问题。他回答说,Java中的线程也可以实现同样的功能。
我是一名初级开发人员,最近转学了kotlin,所以我对这方面的知识有限,在互联网上找不到更多关于这方面的信息。有人能帮上忙吗?

使用协同程序所能做的一切都可以用Java来完成。协同程序不是魔法;他们在做你可以手工做的事情


要在纯Java中获得相同的正确性、简洁性和性能要困难得多。与您必须用等效Java编写的内容相比,协同程序可以轻松完成所有这些事情。协同程序并没有使任何新的事情成为可能,它们只是使构建和维护变得更容易。

使用协同程序所能做的一切当然都可以在Java中完成。协同程序不是魔法;他们在做你可以手工做的事情


要在纯Java中获得相同的正确性、简洁性和性能要困难得多。与您必须用等效Java编写的内容相比,协同程序可以轻松完成所有这些事情。协同程序不会使任何新的事情成为可能,它们只是使构建和维护变得更容易。

协同程序的性能优于生成许多线程,因为它们在引擎盖下使用线程池,但纯Java Executor中提供线程池。Kotlin文档调用协程轻量级线程,但实际上它们是从借用的线程拼凑而成的。是的,它们比每个任务使用一个线程更轻


与Java相比,协同路由的优势在于使用它们的直观语法。Java需要回调方法,这会导致嵌套块和代码的编写顺序与其执行顺序不同。

协同程序的性能优于生成许多线程,因为它们在引擎盖下使用线程池,但在纯Java Executor中可以使用线程池。Kotlin文档调用协程轻量级线程,但实际上它们是从借用的线程拼凑而成的。是的,它们比每个任务使用一个线程更轻


与Java相比,协同路由的优势在于使用它们的直观语法。Java需要回调方法,这会导致嵌套块和代码的编写顺序与其执行顺序不同。

Coroutines使用挂起函数的思想,而JVM使用状态机。它不直接绑定到协程中的线程分派器。没有办法消除繁重的操作——不管怎样,线程阻塞都会发生。Kotlin宣传协同路由是一种非常好的内联使用回调的方式,并没有将其直接与线程联系在一起——但在99.9%的用例中,回调通常是因为异步操作,比如网络调用,而您无论如何都会使用线程。面试官指的是线程池和执行器,就像协程使用ie Dispatchers一样。你到底追求什么样的效率?协程的主要优点是,你必须在Java中使用面向lambda函数的API回调,而协程可以保持常规的顺序编程风格。请注意,当ProjectLowe成为Java的一部分时,它甚至比Kotlin协程更简单。它不直接绑定到协程中的线程分派器。没有办法消除繁重的操作——不管怎样,线程阻塞都会发生。Kotlin宣传协同路由是一种非常好的内联使用回调的方式,并没有将其直接与线程联系在一起——但在99.9%的用例中,回调通常是因为异步操作,比如网络调用,而您无论如何都会使用线程。面试官指的是线程池和执行器,就像协程使用ie Dispatchers一样。你到底追求什么样的效率?协程的主要优点是,你必须在Java中使用面向lambda函数的API回调,而协程可以保持常规的顺序编程风格。注意,当ProjectLowe成为Java的一部分时,它甚至比Kotlin协同程序更简单。