[转]java中Thread与Runnable的区别
来源:互联网 发布:免费下载视频剪辑软件 编辑:程序博客网 时间:2024/05/22 17:45
在java中可有两种方式实现多线程,一种是继承thread类,一种是实现runnable接口;thread类是在java.lang包中定义的。一个类只要继承了thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限,下面看例子:
package org.thread.demo;
class mythread extends thread{
private string name;
public mythread(string name) {
super();
this.name = name;
}
public void run(){
for(int i=0;i避免点继承的局限,一个类可以继承多个接口。
->适合于资源的共享
以卖票程序为例,通过thread类完成:
package org.demo.dff;
class mythread extends thread{
private int ticket=10;
public void run(){
for(int i=0;i0){
system.out.println("賣票:ticket"+this.ticket--);
}
}
}
};
下面通过三个线程对象,同时卖票:
package org.demo.dff;
public class threadticket {
public static void main(string[] args) {
mythread mt1=new mythread();
mythread mt2=new mythread();
mythread mt3=new mythread();
mt1.start();//每个线程都各卖了10张,共卖了30张票
mt2.start();//但实际只有10张票,每个线程都卖自己的票
mt3.start();//没有达到资源共享
}
}
如果用runnable就可以实现资源共享,下面看例子:
package org.demo.runnable;
class mythread implements runnable{
private int ticket=10;
public void run(){
for(int i=0;i0){
system.out.println("賣票:ticket"+this.ticket--);
}
}
}
}
package org.demo.runnable;
public class runnableticket {
public static void main(string[] args) {
mythread mt=new mythread();
new thread(mt).start();//同一个mt,但是在thread中就不可以,如果用同一
new thread(mt).start();//个实例化对象mt,就会出现异常
new thread(mt).start();
}
};
虽然现在程序中有三个线程,但是一共卖了10张票,也就是说使用runnable实现多线程可以达到资源共享目的。
runnable接口和thread之间的联系:
public class thread extends object implements runnable
发现thread类也是runnable接口的子类。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
- java中Thread与Runnable的区别
- java中Thread与Runnable的区别
- java中Thread与Runnable的区别
- java中Thread与Runnable的区别
- java中Thread与Runnable的区别
- java中Thread与Runnable的区别
- java中Thread与Runnable的区别
- Java中Thread与Runnable的区别
- java中Thread与Runnable的区别
- Java中 Thread 与 Runnable 的区别
- [转]java中Thread与Runnable的区别
- (转)java中Thread与Runnable的区别
- Java中Thread与Runnable的区别(转)
- Java中thread类与Runnable接口的区别
- Android Java 中Thread与Runnable的区别
- Android Java 中Thread与Runnable的区别
- Android Java 中Thread与Runnable的区别
- Java中thread类与Runnable接口的区别
- Java内部类
- 浅谈java输入输出流
- Java 集合类(转)
- java 关于集合框架
- java笔记:SpringSecurity应用(二)
- [转]java中Thread与Runnable的区别
- Java如何实现条件编译
- java常见笔试题
- NanguoCoffee
- java调用mysql存储过程返回多个结果集,与.net不同
- javascript深拷贝
- javascript 特征侦测技术
- 【分享】JS超精简实现链表!拜请各位JAVA C# 大牛指点
- Java数据类型的互相转换