Thread和Service应用场合的区别

Thread和Service的区别:

1. Thread是程序执行的最小单元,它是分配CPU的基本单位,可以用Thread来执行一些异步的操作。

如果是Local Service,那么对应的Service是运行在主进程的 main线程上的。如果是Remote Service,那么对应的Service则是运行在独立进程的main线程上。因此Service不是线程!

2. Thread的运行是独立于Activity的,也就是说当一个Activity 被finish之后,如果你没有主动停止Thread或者Thread里的run方法没有执行完毕的话,Thread也会一直执行。因此这里会出现一个问题:当Activity被finish之后,你不再持有该Thread的引用。另一方面,你没有办法在不同的Activity中对同一Thread进行控制。

而任何Activity都可以控制同一Service,而系统也只会创建一个对应Service的实例。因此你可以把Service想象成一种消息服务,而你可以在任何有Context的地方调用Context.startService、Context.stopService、Context.bindService,Context.unbindService,来控制它,你也可以在Service里注册BroadcastReceiver,在其他地方通过发送broadcast来控制它,当然这些都是Thread做不到的。

3. Service组件主要有两个目的:后台运行和跨进程访问。service可以在android系统后台独立运行,线程是不可以。

4. Service类是可以供其他应用程序来调用这个Service的而Thread只是在本类中在使用,如果本类关闭 那么这个thread也就下岗了而Service类则不会。

 

转自:http://www.cnblogs.com/devinzhang/archive/2012/01/11/2319433.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值