为什么进程的通讯值来自进程名称的最后 15 个字符,而线程的通讯值来自前 15 个字符?

为什么进程的通讯值来自进程名称的最后 15 个字符,而线程的通讯值来自前 15 个字符?

我正在 Android 11 设备上进行开发。我很困惑的是,进程的通讯值来自进程名称的最后 15 个字符,但线程的通讯值来自前 15 个字符。有任何手册页对此进行解释吗?

例如:

console:/ # cat /proc/5455/comm                                                
ndroid.launcher
console:/ # cat /proc/5455/task/5470/comm                                      
ReferenceQueueD

答案1

进程可以任意设置自己的通讯值,只需写入/proc/self/comm即可。

由于您的系统是 Android 而不是常规 Linux,因此可以合理地假设 Android“应用程序”运行时手动将其通讯值设置为最有用的值 - 并且由于 Android 应用程序 ID 采用“反向 DNS”格式,它们的最后一个组件对于快速识别来说是最有用的。

相关内容