gpt4 book ai didi

java - HandlerThread 的线程 ID - android

转载 作者:太空宇宙 更新时间:2023-11-04 12:34:30 25 4
gpt4 key购买 nike

当我浏览 andorid.os.HandlerThread 的源代码时类,我发现 Process.myTid()被用作线程 ID。

我搜索了一下,找到了this有用的答案,现在我明白什么是 myTid什么是differencemyTid 之间& Thread.getId() .

这是我的问题;

WHY we need to get the ID from Process.myTid()? Why not use Thread.getId()?

@Override
public void run() {
mTid = Process.myTid();
Looper.prepare();
synchronized (this) {
mLooper = Looper.myLooper();
notifyAll();
}
Process.setThreadPriority(mPriority);
onLooperPrepared();
Looper.loop();
mTid = -1;
}

最佳答案

您所有的Thread 都在一个Process 中运行(您的应用程序可能有多个进程)。每个线程都在默认池中运行。这意味着如果您创建一个自定义的 ThreadPool,您的线程 ID 可能相同,但它们属于不同的池,但是由于每个线程都在 Process 中运行,所以每个线程都有自己的唯一身份。

Thread.getId()只是每个线程的 java static auto-increment long,(这个线程 ID 可以重用)。

Process.getTid()返回 Os.gettid()

关于java - HandlerThread 的线程 ID - android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42351981/

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