当前位置: 首页 > 面试题库 >

命名AsyncTask的线程

申屠森
2023-03-14
问题内容

是否可以给AsyncTask的后台线程起一个名字,就像Java中的普通线程一样:

Thread(Runnable target, String name)

我已经看过AsyncTask的代码,默认构造函数只是默认提供一个名称

private static final ThreadFactory sThreadFactory = new ThreadFactory() {
    private final AtomicInteger mCount = new AtomicInteger(1);

    public Thread newThread(Runnable r) {
        return new Thread(r, "AsyncTask #" + mCount.getAndIncrement());
    }
};

我想这样做,因为在调试时,我想知道哪个Asynctask正在访问助手类中的方法。


问题答案:

尝试从内部调用此方法doInBackground()

Thread.currentThread().setName("some custom name");


 类似资料:
  • 主要内容:1 如何获取线程名称,2 获取线程名称的例子1 如何获取线程名称 Thread类提供了更改和获取线程名称的方法。默认情况下,每个线程都有一个名称,即thread-0,thread-1等。通过使用setName()方法,我们可以更改线程的名称。setName()和getName()方法的语法如下: public String getName():用于返回线程的名称。 public void setName(String name):用于更改线

  • 问题内容: 为线程命名很有帮助,以便人们可以出于诊断和调试的目的整理出哪些线程在做什么。 在高度多线程的应用程序中,是否有一种比另一个应用程序更好的特定命名约定?有准则吗?线程名称应包含哪些信息?您对命名线程有什么了解,这可能会对其他人有所帮助? 问题答案: 据我所知,没有标准。随着时间的流逝,我发现这些准则会有所帮助: 使用短名称,因为它们不会使日志文件中的行太长。 在重要部分的开头创建名称。图

  • 问题内容: 假设我有一个利用该框架的应用程序 当我在调试器中运行此应用程序时,将使用以下(默认)名称创建一个线程:。如你所见,这并不是非常有用,而且据我所知,该框架没有提供一种简便的方法来命名已创建的线程或线程池。 那么,如何为线程/线程池提供名称呢?例如,。 问题答案: 你可以提供一个到。工厂将负责创建线程,并将能够为其命名。 引用Javadoc: 创建新线程 使用创建新线程。如果没有另外指定,

  • 本文向大家介绍Laravel 命名路线,包括了Laravel 命名路线的使用技巧和注意事项,需要的朋友参考一下 示例 命名路由用于生成URL或重定向到特定路由。使用命名路由的优点是,如果将来更改路由的URI,则如果使用命名路由,则无需更改URL或重定向指向该路由的地址。但是,如果链接是使用url [例如 url('/admin/login')],那么我们将不得不在使用它的任何地方进行更改。 使用a

  • 问题内容: 我有一个使用该框架的Java应用程序,并且我的代码看起来像这样 我的理解是,JVM会在内部创建5个线程的池。现在,当我在探查器中检查执行情况时,会得到类似的信息。 , 我需要一种方法来区分由我创建的和由服务器创建的 。 我在想,如果我可以命名线程池,它应该可以解决问题,但是看不到任何允许我执行此操作的API。 提前致谢。 问题答案: 您可以将自己的ThreadFactory传递给Sch

  • 问题内容: 我有一个用C / C++编写的多线程Linux应用程序。我为线程选择了名称。为了帮助调试,我希望这些名称在GDB,“顶部”等中可见。这可能吗?如果可以,怎么办? (有很多[原因可以知道线程名称。现在我想知道哪个线程占用了50%的CPU(由“ top”报告)。在调试时,我经常需要切换到其他线程-目前,我必须做“ ”,然后浏览回溯输出的页面以找到正确的线程。 该视窗解决方案就在这里 ; 什