import java.io.IOException;
public class CreateThread {
public static void main(String[] args) {
Thread first = new TryThread("三丰 " , "张 " , 2000L);
Thread second = new TryThread("道子 ", "吴 ", 3000L);
Thread third = new TryThread("中山 ", "孙 ", 5000L);
System.out.println("开始运行啦,注意看结果....\n");
first.start();
second.start();
third.start();
try{
System.in.read();
System.out.println("EnterPress....\n");
}catch(IOException e){
e.printStackTrace();
}
return ;
}
}
class TryThread extends Thread{
private String firstName;
private String secondName;
private long aWhile;
public TryThread(String firstName,String secondName,long delay){
this.firstName = firstName;
this.secondName = secondName;
aWhile = delay;//delay:延时
//将该线程标记为守护线程或用户线程。当正在运行的线程都是守护线程时,Java 虚拟机退出。
setDaemon(true);//daemon:守护进程
}
public void run(){
try{
while (true){
System.out.print(firstName);
sleep(aWhile);
System.out.print(secondName + "\n");
}
}catch(InterruptedException e){
System.out.println(firstName + secondName + e);
}
}
}
/**
* 开始运行啦,注意看结果....
三丰 道子 中山 张
三丰 吴
道子 张
三丰 孙
中山 吴
道子 张
三丰 张
三丰 吴
道子 张
三丰 孙
中山
*/
public class ThreadDemo {
public static void main(String[] args) {
new NewThread();
try{
for(int i = 5; i > 0; i--){
System.out.println("主线程" + i);
Thread.sleep(1000);
}
}catch(InterruptedException e){
System.out.println("主线程被打段");
}
System.out.println("退出主线程");
}
}
class NewThread implements Runnable{
Thread t;
NewThread(){
t = new Thread(this,"Demo");
System.out.println("子线程:" + t);
t.start();
}
public void run() {
try{
for(int i = 5; i > 0; i--){
System.out.println("子线程" + i);
Thread.sleep(500);
}
}catch(InterruptedException e){
System.out.println("子线程被打段");
}
System.out.println("退出子线程");
}
}
/**
子线程:Thread[Demo,5,main]
主线程5
子线程5
子线程4
主线程4
子线程3
子线程2
主线程3
子线程1
退出子线程
主线程2
主线程1
退出主线程
*/