`

线程のThread 和 Runnable区别总结

阅读更多

1:Thread不能实现线程之间变量资源共享,Runnable则可以

2:Thread是类(是类当然就是单继承),Runnable是接口(接口可以多实现)

    Thread

//使用Thread实现线程不能实现资源共享  
class MyThread extends Thread  
{     
	private int ticket=5;  
	private String name;  
	public MyThread(String name ){  
		this.name=name;  
	}  
	public void run(){  
		for(int i=0;i<10;i++){  
			if(ticket>5){  
				System.out.println("线程"+name+"卖票"+i);  
			}  
		}  
	  
	}  
}  
  
public class ThreadDemo02  
{  
	public static void main(String args[]){  
		// 这里我们new了线程A,B是两个实例,所以不能实现资源(ticket)共享
		MyThread A = new MyThread("A");    
		MyThread B = new MyThread("B");  
		A.start();  
		B.start();  
	}  
}  

    Runnable

//使用Runnable实现线程可以实现资源共享  
class MyThread implements Runnable  
{  
	private int ticket=5;  
	private String name;  
	public MyThread(String name){  
		this.name=name;  
	}  
	public void run(){  
		for(int i=1;i<=10;i++){  
			if(ticket>0){  
				System.out.println("线程"+name+"卖票"+(ticket--));  
				}  
		}  
	}  
}  
public class RunnableDemo02  
{  
	public static void main(String args[]){  
		MyThread A = new MyThread("A");  //实例化线程要执行的任务  
		Thread Ta = new Thread(A);    //实例两个线程对象,实际传递的是一个任务  
		Thread Tb = new Thread(A);    //因为两个线程执行的是一个任务,所以资源(ticket)是共享的  
		Ta.start();  
		Tb.start();  
	}  
}  

 以下文章可以进行详细参考:

http://blog.csdn.net/edmond999/article/details/45073329

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics