Android Thread(Runnabletarget)

该构造方法中的参数是一个Runnable类型的接口,因此,在创建线程对象时必须向构造方法的参数传递一个实现Runnable接口类的实例,该实例对象称作所创线程的目标对象,当线程调用start()方法后,一旦轮到它来享用CPU资源,目标对象就会自动调用接口中的run()方法(接口回调),这一过程是自动实现的,用户程序只需要让线程调用start()方法即可,也就是说,当线程被调度并转入运行状态时,所执行的就是run()方法中所规定的操作。

2)        关于run()方法中的局部变量

对于具有相同目标对象的线程,当其中一个线程享用CPU资源时,目标对象自动调用接口中的run()方法,这时,run()方法中的局部变量被分配内存空间,当轮到另一个线程享用CPU资源时,目标对象会再次调用接口中的run()方法,那么,run()方法中的局部变量会再次分配内存空间。也就是说run()方法已经启动运行了两次,分别运行在不同的线程中,即运行在不同的时间片内。不同线程的run()方法中的局部变量互不干扰,一个线程改变了自己的run()方法中局部变量的值不会影响其他线程的run()方法中的局部变量的值。

3)        在线程中启动其他线程

线程通过调用start()方法将启动该线程,使之从新建状态进入就绪队列排队,一旦轮到它来享用CPU资源时,就可以脱离创建它的主线程独立开始自己的生命周期了。

4.        线程的常用方法

1)        start()方法

线程调用该方法将启动线程,使之从新建状态进入就绪队列排队,一旦轮到它来享用CPU资源时,就可以脱离创建它的线程独立开始自己的生命周期了。

2)        run()方法

Thread类的run()方法与Runnable()接口中的run()方法的功能和作用相同,都用来定义线程对象被调度之后执行的操作,都是系统自动调用而用户程序不得引用的方法。系统的Thread类中,run()方法没有具体内容,所以用户程序需要创建自己的Thread类的子类,并重写run()方法来覆盖原来的run()方法。 当run()方法执行完毕,线程就变成死亡状态, 所谓死亡状态就是线程释放了实体,即释放分配给线程对象的内存。在线程没有结束run()方法之前,不赞成让线程再调用start()方法,否则将发生IllegalThreadStateException异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值