【发布时间】:2016-08-22 00:59:26
【问题描述】:
我对 Android 的线程模型感到困惑。我被卡住了……:(
Android 是实现一对一还是多对多?
从 Stackoverflow/Googling/Books,我了解到 Android 使用 Linux pthread 的修改版本。我认为这意味着Android实现了一对一的线程模型。 (即每个内核线程一个用户线程)
但是,如果我在 Android 设备上看到使用 ps -t 的进程/线程,那么单个应用程序中有很多线程。例如,2 个 kworker 和 14 个其他线程(例如 Binder、mali、JDWP、GCDaemon 等)。从这个事实来看,我认为 Android 实现了多对多线程模型。 (即,M 个用户线程到 N 个内核线程)
@我了解到 kworker 是内核工作线程。认为 kworker 是应用程序的内核线程是否正确?
【问题讨论】:
标签: java android linux multithreading