猿问

设置名称可以在start线程开始之后吗?


代码:


package com.vdate.day13;


import javax.swing.text.StyledEditorKit.ForegroundAction;


public class threadUse1 {

/**

 * 法一步骤:

 *1、继承thread类,

 *2、实现thread的run方法。实际上就是把需要执行的程序内容放到run方法中。

 *3、调用thread类里面的start方法,而不是直接调用run方法。

 * (run方法是执行逻辑,start才是启动线程开始,线程底部和java虚拟机会再次去调用run方法)

 *

 * 多线程其实是一个抢占CPU资源的,谁抢到谁执行

 *

 * Thread常用的几个方法:

 * 1、getName();获取当前线程名称,返回String类型

 * 2、setName();设置线程的名称,传入一个String类型的名称;设置线程名称还可以通过构造函数的方式实现;

 * 3、获取当前线程及线程名称可以直接调用Thread类里面的currentThread方法

 *

 * @param args

 */

public static void main(String[] args) {

/*test t1 = new test("猪八戒");

test t2 = new test("猴子"); */

test t1 = new test();

test t2 = new test();

/* t1.run(); //不知直接调用run方法

t2.run();*/

t1.start();

t2.start();

// t1.start();//不能多次启动

//改变线程名称,使之与参数 name 相同。

t1.setName("武");

t2.setName("潘");

//获取当前线程名称,返回String类型

/*String currentName = Thread.currentThread().getName();//静态的,可以直接   类名.  调用

System.out.println("currentName:" + currentName);//currentName:main

*/

}

}


class test extends Thread{


//构造方法

/*public  test(){}

public  test(String name){

super(name);//调用父类的构造方法

}*/

public void run() {//重写thread的run方法

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

System.out.println(getName() +"--"+ i);//调用getName这个方法,获取当前线程名称,

} //便于区分多线程的执行

}

}


qq_雨过之后_1
浏览 1568回答 1
1回答

岁月老刀

使用Thread.currentThread().setName("XXXX");
随时随地看视频慕课网APP

相关分类

Java
我要回答