
当线程类继承了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 根据线程名字查询一个线程,能实现吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)