Android 安卓:如何确定我的方法在哪些线程上运行?
我想确保我的方法在我应该运行的线程上运行。为此,我想在我的日志中添加线程的名称或id。为了检查我的方法是否在UIthread、thread1、thread2…threadx中运行 问题: 请指导我需要设置什么以获得线程的名称或id。我不确定这一点,如果您有更好的方法,请与我们分享如何将UI线程与其他运行线程区分开来。 指导我如何记录上述名称或id。我已经有了记录系统。只想知道该方法需要调用以获取名称或id。可能是thread.name或thread.id。 欢迎提供任何指导。使用。实际上,文档中的示例正是您需要的:Android 安卓:如何确定我的方法在哪些线程上运行?,android,multithreading,Android,Multithreading,我想确保我的方法在我应该运行的线程上运行。为此,我想在我的日志中添加线程的名称或id。为了检查我的方法是否在UIthread、thread1、thread2…threadx中运行 问题: 请指导我需要设置什么以获得线程的名称或id。我不确定这一点,如果您有更好的方法,请与我们分享如何将UI线程与其他运行线程区分开来。 指导我如何记录上述名称或id。我已经有了记录系统。只想知道该方法需要调用以获取名称或id。可能是thread.name或thread.id。 欢迎提供任何指导。使用。实际上,文档中
import java.util.concurrent.atomic.AtomicInteger;
public class UniqueThreadIdGenerator {
private static final AtomicInteger uniqueId = new AtomicInteger(0);
private static final ThreadLocal < Integer > uniqueNum =
new ThreadLocal < Integer > () {
@Override protected Integer initialValue() {
return uniqueId.getAndIncrement();
}
};
public static int getCurrentThreadId() {
return uniqueId.get();
}
} // UniqueThreadIdGenerator
如果需要,可以将所需名称传递给线程,并在run方法的第一行中将其设置为staticthreadlocal变量