gpt4 book ai didi

java - Android线程模型是一对一还是多对一?

转载 作者:太空狗 更新时间:2023-10-29 12:26:27 27 4
gpt4 key购买 nike

我对 Android 的线程模型感到困惑。我卡住了...:(

Does Android implement one-to-one, or many-to-many?

从 Stackoverflow/Googling/Books,我了解到 Android 使用 Linux pthread 的修改版本。我认为这意味着 Android 实现了一对一的线程模型。 (即,一个内核线程对应一个用户线程)

但是,如果我在 Android 设备上看到使用 ps -t 的进程/线程,则单个应用程序中有很多线程。例如,2 个 kworker 和 14 个其他线程(例如 Binder、mali、JDWP、GCDaemon 等)。从这个事实来看,我认为 Android 实现了多对多线程模型。 (即 M 个用户线程到 N 个内核线程)
@我了解到 kworker 是内核工作线程。认为kworker是应用程序的内核线程是否正确?

最佳答案

现在几乎没有什么使用多对一模型。在操作系统并不都支持多线程的糟糕过去,它们很有用。但是在任何现代操作系统上执行多对一的好处几乎为 0,尤其是在 Linux 上。从理论的角度来学习,或者通过实现来理解调度是如何工作的,而不必弄乱内核是很有趣的。但它不是任何人使用的东西。

真正的好处是什么?有一个空闲的内核线程除了占用少量内存外没有任何负面影响。那么为什么不使用内核线程呢?

关于java - Android线程模型是一对一还是多对一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39070147/

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