java 多线程 Thread和Runnable的区别

java多线程需要掌握的内容有:

1)Thread和Runnable和区别
2)线程的状态及其之间的转换
3)线程间的通信
4)线程的同步
重点还在于动手实践,分析实例。

Thread类也是Runnable接口的子类
两种实现方式的区别和联系: 
在程序开发中只要是多线程肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下好处: 
->避免点继承的局限,一个类可以继承多个接口。 
->适合于资源的共享 
例子参见:http://fishyych.iteye.com/blog/930485

1、http://jinguo.iteye.com/blog/286772    JAVA基础(多线程Thread和Runnable的使用区别
二者的使用方法的区别
Runnable是Thread的接口,在大多数情况下“推荐用接口的方式”生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合继承。 

在使用Thread的时候只需要new一个实例出来,调用start()方法即可以启动一个线程。 
Thread Test = new Thread(); 
Test.start(); 

在使用Runnable的时候需要先new一个继承Runnable的实例,之后用子类Thread调用。 
Test impelements Runnable 
Test t = new Test(); 
Thread test = new Thread(t); 
例子看连接。

其他理解:
a)java 是单根继承 实现多线程有两种实种方式一种是继承 thread 类 另一种就是实现Runnable接口 如果这个类还要继承其他的类的时候 这时候是不允许继承的。 此时就可以使用实现接口的方式,况且 Runnable接口中只有一个空的run()方法。比较适合实现。

b) Runnable只是申明了一个接口,表示可以被Thread对象执行,Thead是一个完整的线程对象

二者更多的使用和区别,参见http://www.360doc.com/content/10/1219/22/573136_79607619.shtml


android开发中多线程编程技术  http://www.uml.org.cn/mobiledev/201206282.asp



通过调用Thread类的start()方法来启动一个线程,
这时此线程是处于就绪状态,
并没有运行。
然后通过此Thread类调用方法run()来完成其运行操作的,
这里方法run()称为线程体,
它包含了要执行的这个线程的内容,
Run方法运行结束,
此线程终止,
而CPU再运行其它线程,

而如果直接用Run方法,
这只是调用一个方法而已,
程序中依然只有主线程--这一个线程,
其程序执行路径还是只有一条,
这样就没有达到写线程的目的。(这一段怎么理解呢???)


二:线程的start和run的区别

http://visionsky.blog.51cto.com/733317/431397

1) start:

用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到spu时间片,就开始执行run()方法,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。

2) run:

run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。

总结:调用start方法方可启动线程,而run方法只是thread的一个普通方法调用,还是在主线程里执行。


http://lavasoft.blog.51cto.com/62575/27069

android多线程:http://www.uml.org.cn/mobiledev/201206282.asp


多线程系列教程:http://lavasoft.blog.51cto.com/62575/27069



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值