Android 安卓:如何确定我的方法在哪些线程上运行?

Android 安卓:如何确定我的方法在哪些线程上运行?,android,multithreading,Android,Multithreading,我想确保我的方法在我应该运行的线程上运行。为此,我想在我的日志中添加线程的名称或id。为了检查我的方法是否在UIthread、thread1、thread2…threadx中运行 问题: 请指导我需要设置什么以获得线程的名称或id。我不确定这一点,如果您有更好的方法,请与我们分享如何将UI线程与其他运行线程区分开来。 指导我如何记录上述名称或id。我已经有了记录系统。只想知道该方法需要调用以获取名称或id。可能是thread.name或thread.id。 欢迎提供任何指导。使用。实际上,文档中

我想确保我的方法在我应该运行的线程上运行。为此,我想在我的日志中添加线程的名称或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变量