{
t1.printMsg();
}
}
}
使用setName()
使用setName()方法可以显示指定Thread对象的名字
线程的名字一般在启动线程前设置,但也允许为已经运行的线程设置名字。允许两个Thread对象有相同的名字,但为了清晰起见,应该尽量避免这种情况。
SetNameThreadDemo.java
/*
*目的:setName()方法的使用
*说明:setName()方法可以设置一个线程的名称
*/
public class SetNameThreadDemo extends Thread
{
public void run()
{
for(int i=0;i<10;i++)
{
printMsg();
}
}
public void printMsg()
{
//获得运行此代码的线程的引用
Thread t = Thread.currentThread();
String name = t.getName();
System.out.println("name = "+name);
}
public static void main(String args[])
{
SetNameThreadDemo tt = new SetNameThreadDemo();
//在这里设置线程的名称
tt.setName("test thread");
tt.start();
for(int i=0;i<10;i++)
{
tt.printMsg();
}
}
}
激活线程:start()和isAlive()
start()方法通知线程规划器这个新线程已准备就绪,而且应当在规划器的最早方便时间调用它的run()方法。
isAlive()方法,用来测试线程是否已经启动而且仍然启动。
/*
*目的:isAlive()方法的使用
*说明:isAlive()方法用于判断线程是否存活
*/
public class StartThreadDemo extends Thread{
public void run()
{
for(int i=0;i<10;i++)
{
printMsg();
}
}
public void printMsg()
{
//获得运行此代码的线程的引用
Thread t = Thread.currentThread();
String name = t.getName();
System.out.println("name = "+name);
}
public static void main(String[] args) {
StartThreadDemo t = new StartThreadDemo();
t.setName("test Thread");
System.out.println("before start() , t.isAlive() = "+t.isAlive());
t.start();
System.out.println("just after start() , t.isAlive() = "+t.isAlive());
for(int i=0;i<10;i++)
{
t.printMsg();
9
7
3
1
2
3
4
5
6
7
8
9
10
4
8
: