Java:为什么这里不用this就能获得当前线程名呢

Java:为什么这里不用this就能获得当前线程名呢,第1张

线程类继承了Thread类时,直接可以用this获取当前线程

相当于thisgetName(),再将this省略。

ThreadcurrentThread()getName()这个是通用的,绝对不会错的、你线程类实现Runnable接口也可以用这个取得当前线程名!

GetWindowThreadProcessId,它根据窗口的句柄来获取进程和线程ID,VB原型如下

'Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long

'参数:

'hwnd:目标窗口的句柄

'lpdwProcessId:一个接受返回进程ID的Long变量,

'顺便提一下,在我们调用API的时候,如果一个变量不是ByVal传递,则表示这个变量是用来接受返回值的(但也不是绝对的)

'返回值:

'窗口的线程ID

根据线程名称找到线程,在java中是可以实现的,实现步骤是:

1、首先获取Java VM中当前运行的所有线程

以下代码是用数组返回Java VM中当前运行的所有线程

public static Thread[] findAllThreads()

{

    ThreadGroup group = ThreadcurrentThread()getThreadGroup();

    ThreadGroup topGroup = group;

    / 遍历线程组树,获取根线程组 /

    while ( group != null )

    {

        topGroup    = group;

        group        = groupgetParent();

    }

    / 激活的线程数加倍 /

    int estimatedSize = topGroupactiveCount()  2;

    Thread[] slackList = new Thread[estimatedSize];

    / 获取根线程组的所有线程 /

    int actualSize = topGroupenumerate( slackList );

    / copy into a list that is the exact size /

    Thread[] list = new Thread[actualSize];

    Systemarraycopy( slackList, 0, list, 0, actualSize );

    return (list);

}

2、遍历线程,比对名称,找到需要寻找的线程

以下代码可得到线程的名称

String name = threadgetName();

简单来说Thread是线程的意思

current()是个静态方法意思是返回当前执行这段代码的线程,

在我们写的程序中,无论你写的什么程序,都是被拿来执行的(说了句废话),

但,执行他的是谁,你简单理解就可以,理解成是线程来执行的

等你以后深入学习了就知道这句话不全对

但对你初学者来说这样理解就行了

继续上面的问题

Threadcurrent()getName();

意思就是,获取当前执行这段代码的线程的名字

以上就是关于Java:为什么这里不用this就能获得当前线程名呢全部的内容,包括:Java:为什么这里不用this就能获得当前线程名呢、已知线程句柄,如何得到Id、java 根据线程名字查询一个线程,能实现吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9660478.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存