标签:end str strong 运行 接口 int style static nbsp
【区别】Thread是类,Runnable是接口。
【联系】Thread类实现了Runnable接口
【Thread示例】
class MyThread extends Thread{ private int ticket=10; public void run(){ for(int i=0;i<20;i++){ if(this.ticket>0){ System.out.println("卖票:ticket"+this.ticket--); } } } }; public class ThreadTicket { public static void main(String[] args) { MyThread mt1=new MyThread(); MyThread mt2=new MyThread(); MyThread mt3=new MyThread(); mt1.start(); mt2.start(); mt3.start(); } }
start方法 VS run方法
执行结果
每个线程都各卖了10张,共卖了30张票。但实际只有10张票。每个线程都卖自己的票,没有达到资源共享。
【Runnable示例】
class MyThread implements Runnable{ private int ticket=10; public void run(){ for(int i=0;i<20;i++){ if(this.ticket>0){ System.out.println("卖票:ticket"+this.ticket--); } } } } public class RunnableTicket { public static void main(String[] args) { MyThread mt=new MyThread(); new Thread(mt).start(); //通过Thread类的start方法启动多线程 new Thread(mt).start(); //同一个mt;而在Thread中不可以用同一个实例化对象mt,否则就会出现异常 new Thread(mt).start(); } };
执行结果:三个线程一共卖了10张票,达到了资源共享。
【Runnable比Thread的优势】
标签:end str strong 运行 接口 int style static nbsp
原文地址:https://www.cnblogs.com/qionglouyuyu/p/13396184.html