Thread设置和获取线程名称

package Thread;

/**
* FileName: ThreadDemo01
* Author: lps
* Date: 2022/3/29 12:42
* Sign:刘品水 Q:1944900433
* Thread()
* 分配一个新的 Thread对象。
* Thread(Runnable target)
* 分配一个新的 Thread对象。
* Thread(Runnable target, String name)
* 分配一个新的 Thread对象。
* Thread(String name)
* 分配一个新的 Thread对象。
* Thread(ThreadGroup group, Runnable target)
* 分配一个新的 Thread对象。
* Thread(ThreadGroup group, Runnable target, String name)
* 分配一个新的 Thread对象具有 target为经营对象,具有指定的 name正如其名,属于线程组被 group。
* Thread(ThreadGroup group, Runnable target, String name, long stackSize)
* 分配一个新的 Thread对象具有 target为经营对象,具有指定的 name正如其名,属于线程组被 group,并且具有指定的空堆栈大小。
* Thread(ThreadGroup group, String name)
* 分配一个新的 Thread对象。
*/
public class ThreadDemo01 {
public static void main(String[] args) {
// MyThread my1 = new MyThread();
// MyThread my2 = new MyThread();
//
//// my1.run();
//// my2.run();
// my1.setName("高铁");
// my2.setName("飞机");
// // * Thread(String name)
// // * 分配一个新的 Thread对象。
// MyThread my1 = new MyThread("高铁");
// MyThread my2 = new MyThread("飞机");
//
// //void start()
// //导致该线程开始执行;java虚拟机调用这个线程的 run方法。
// my1.start();
// my2.start();

//static Thread currentThread()
//返回当前正在执行的线程对象的引用。
System.out.println(Thread.currentThread().getName());

}

}


package Thread;

/**
* FileName: MyThread
* Author: lps
* Date: 2022/3/29 12:58
* Sign:刘品水 Q:1944900433
*/
public class MyThread extends Thread {
public MyThread() {
}

public MyThread(String name) {
super(name);
}

@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println(getName()+":"+i);
}
}
}

/* public Thread() {
init(null, null, "Thread-" + nextThreadNum(), 0);
}

public Thread(String name) {
init(null, null, name, 0);
}

private void init(ThreadGroup g, Runnable target, String name,
long stackSize) {
init(g, target, name, stackSize, null, true);
}
private volatile String name;

private static int threadInitNumber;
private static synchronized int nextThreadNum() {
return threadInitNumber++;

public final synchronized void setName(String name) {
checkAccess();
if (name == null) {
throw new NullPointerException("name cannot be null");
}

this.name = name;
if (threadStatus != 0) {
setNativeName(name);
}
}

}*/
posted @ 2022-03-29 15:03  刘品水  阅读(169)  评论(0编辑  收藏  举报