卖票
1.实现Runnable接口
class MyThread1 implements Runnable{
private int ticket =5;
private String name;
public void run(){
while(this.ticket>0){
System.out.println(Thread.currentThread().getName()+"卖票---->"+(this.ticket--));
}
}
}
public class RunnableDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
//设计三个线程
MyThread1 mt = new MyThread1();
// Thread uu = new Thread(target, name);
Thread t1 = new Thread(mt,"一号窗口");
Thread t2 = new Thread(mt,"二号窗口");
Thread t3 = new Thread(mt,"三号窗口");
t1.start();
t2.start();
t3.start();
}
}
2.继承Thread类
class MyThread extends Thread{
private static int ticket = 5;
private String name;
public MyThread(String name){
this.name =name;
}
public void run(){
while(ticket>0){
System.out.println(this.name+"卖票---->"+(this.ticket--));
}
}
}
public class Thread1 {
public static void main(String[] args) {
MyThread mt1= new MyThread("一号窗口");
MyThread mt2= new MyThread("二号窗口");
MyThread mt3= new MyThread("三号窗口");
mt1.start();
mt2.start();
mt3.start();
}
}
总结区别:实现Runnable接口是几个人共同完成一件事(共享同一资源);继承Thread是每个人独立完成自己的自己的事。
3.线程的生命周期
4.守护线程
当主线程结束 守护线程也随之结束