多核中的 Kotlin 线程

问题描述 投票:0回答:1

我是 Kotlin Trehad 的新手。 根据我的发现,在 Kotlin 中,线程和协程是并发工作的。 看来如果我想并行操作,我可以使用java流或pmap的并行来实现。

如果是的话, Kotlin 中线程和协程都是并发的吗? 那么,当CPU有多个核心时,Kotlin的线程是否只使用一个核心呢?

multithreading kotlin
1个回答
0
投票

虽然 Kotlin 由于 Java 而支持线程,但协程是 Kotlin 执行并发工作的正确方法。

假设我们在 JVM 中运行 - 所有其他平台在以下细节上都有细微差别

用于启动给定协程的“协程上下文”和“调度程序”决定了协程运行的线程和/或线程池。池本身可以帮助管理跨多个核心的工作。

由于我们在这个假设中运行在 JVM 中,因此它将管理线程和线程的系统集成。同步和线程安全仍然由 JVM 管理,以及内存分配和垃圾收集。

总体而言,协程提供了一种简化的结构,可以抽象化管理线程的复杂性,提供许多不同的 API 来高效工作,并保持 JVM 在系统底层的功能和工作。

线程提供了更多控制的潜力,但是您必须围绕它们构建更多的结构,才能获得协程提供的开箱即用的简单性。

除非您需要非协程工具提供的额外控制,否则在 Kotlin 中使用协程会更轻松。

© www.soinside.com 2019 - 2024. All rights reserved.