Thread与Runnable的区别
public class Thread
extends Object
implements Runnable=》原来Thread类是Runnable接口的子类
Thread处理上使用的就是代理设计模式
Runnable实现的多线程的程序类可以更好的描述数据共享的概念
没有共享:
class MyThread extends Thread{
private int ticket=10,i=10;
public void run(){
while(i-->0 && this.ticket>0){
System.out.println("Sell tickets:"+this.ticket--);
}
}
}
public class Test {
public static void main(String args[]) {
new MyThread().start();
new MyThread().start();
new MyThread().start();
}
}
共享:
class MyThread extends Thread{
private int ticket=10,i=10;
public void run(){
while(i-->0 && this.ticket>0){
System.out.println("Sell tickets:"+this.ticket--);
}
}
}
public class Test {
public static void main(String args[]) {
MyThread ma=new MyThread();
new Thread(ma).start();
new Thread(ma).start();
new Thread(ma).start();
}
}
但结构不好
使用Runnable:
class MyThread implements Runnable{
private int ticket=10,i=10;
public void run(){
while(i-->0 && this.ticket>0){
System.out.println("Sell tickets:"+this.ticket--);
}
}
}
public class Test {
public static void main(String args[]) {
MyThread ma=new MyThread();
new Thread(ma).start();
new Thread(ma).start();
new Thread(ma).start();
}
}