简答题实现runnable接口创建线程并在线程内提示线程名称等相关信息

简答题实现runnable接口创建线程并在线程内提示线程名称等相关信息,第1张

实现Runnable接口创建线程的步骤如下:

1定义一个类,实现Runnable接口。

public class MyRunnable implements Runnable {

// 线程执行体

@Override

public void run() {

// 提示线程名称等相关信息

Systemoutprintln("线程名称:" + ThreadcurrentThread()getName());

Systemoutprintln("线程ID:" + ThreadcurrentThread()getId());

Systemoutprintln("线程状态:" + ThreadcurrentThread()getState());

}

}

2、创建Runnable接口实现类的实例。

MyRunnable runnable = new MyRunnable();

3、创建Thread类的实例,并将Runnable接口实现类的实例作为参数传递给Thread类的构造方法。

Thread thread = new Thread(runnable);

4、调用Thread类的start()方法启动线程。

threadstart();

在线程内提示线程名称等相关信息,可以在Runnable接口实现类的run()方法中使用Thread类的currentThread()方法来获取当前线程的信息,然后通过getName()、getId()和getState()方法来获取线程名称、线程ID和线程状态,并打印到控制台。

public class Main {    public static void main(String[] args) {    

// 创建Runnable接口实现类的实例

     

MyRunnable runnable = new MyRunnable();    

// 创建Thread类的实例,并将Runnable接口实现类的实例作为参数传递给Thread类的构造方法

Thread thread = new Thread(runnable);

// 调用Thread类的start()方法启动线程

threadstart();

}

}

class MyRunnable implements Runnable {

// 线程执行体

@Override

public void run() {

// 提示线程名称等相关信息

Systemoutprintln("线程名称:" + ThreadcurrentThread()getName());

Systemoutprintln("线程ID:" + ThreadcurrentThread()getId());

Systemoutprintln("线程状态:" + ThreadcurrentThread()getState());

}

}

1一个线程的集合,也可包含其他线程组

2线程组构成一棵树,除了初始化线程组外,每一个线程组都有一个父线程组

3允许线程访问有关自己的线程组的信息,但不能访问其父线程组或其他线程组的信息

4ThreadGroup类只能获得处于运行状态的线程

常用方法:

activeCount() 返回线程组中活动线程的估计数

activeGroupCount() 返回线程组中活动线程组的估计数

enumerate(Thread[] list,boolean recurse) 把此线程组中所有活动线程复制到指定数组中

enumerate(ThreadGroup[] list,boolean recurse) 把此线程组中所有活动子组的引用复制到指定的数组中

enumerate(Thread[] list) 把此线程组中所有活动线程复制到指定数组中

enumerate(ThreadGroup[] list) 把此线程组中所有活动子组的引用复制到指定的数组中

getName() 返回此线程组的名称

getParent() 返回此线程组的父线程组

代码例子:

package comxhjthread;

import javautilArrayList;

import javautilList;

/

查看JVM中的线程 获取线程名和子线程组

@author XIEHEJUN

/

public class CheckThreadJVM {

/

获取根线程组

@return

/

public static ThreadGroup getRootThreadGroup() {

ThreadGroup rootGroup = ThreadcurrentThread()getThreadGroup();

while (true) {

if (rootGroupgetParent() != null) {

rootGroup = rootGroupgetParent();

} else {

break;

}

}

return rootGroup;

}

/

获取线程组中的线程名

@param group

@return

/

public static List<String> getThreadsName(ThreadGroup group) {

List<String> threadList = new ArrayList<String>();

Thread[] threads = new Thread[groupactiveCount()];

int count = groupenumerate(threads, false);

for (int i = 0; i < count; i++) {

threadListadd(groupgetName() + "线程组: " + threads[i]getName());

}

return threadList;

}

/

获取根数组下的子数组

@param group

@return

/

public static List<String> getThreadGroup(ThreadGroup group) {

List<String> threadList = getThreadsName(group);

ThreadGroup[] threads = new ThreadGroup[groupactiveGroupCount()];

int count = groupenumerate(threads, false);

for (int i = 0; i < count; i++) {

threadListaddAll(getThreadsName(threads[i]));

}

return threadList;

}

public static void main(String[] args) {

for (String string : getThreadGroup(getRootThreadGroup())) {

Systemoutprintln(string);

}

}

}

以上就是关于简答题实现runnable接口创建线程并在线程内提示线程名称等相关信息全部的内容,包括:简答题实现runnable接口创建线程并在线程内提示线程名称等相关信息、如何查看jvm的"active thread、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9778987.html

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

发表评论

登录后才能评论

评论列表(0条)

保存