两种方式创建线程
- 继承
Thread
类
class MyThread extends Thread{
.....
@Override
public void run(){
}
}
MyThread mt=new MyThread();
mt.start();
- 实现
Runnable
接口
class MyThread implements Runnable{
....
@Override
public void run(){
}
}
MyThread mt=new MyThread();
Thread td=new Thread(mt);
sd.start();
两者之间的区别
`
Runnable
方式可以避免
Thread方式由于
Java`单继承特性带来的缺陷Runnable
的代码可以被多个线程(Thread)
共享,适用于多个线程处理同一资源的情况
以模拟售卖车票为例
public class ShareThread {
public static void main(String[] args) {
Thread4 t=new Thread4();
Thread t1=new Thread(t,"window1");
Thread t2=new Thread(t,"window2");
Thread t3=new Thread(t,"window3");
t1.start();
t2.start();
t3.start();
}
}
class Thread4 implements Runnable{
private int ticket=5;
@Override
public void run() {
while(ticket>0){
System.out.println(ticket--+"is saled by"+Thread.currentThread().getName());
}
}
}