多线程实现之Thread和Runnable
Android的多线程实现最基础部分应该该为Thread和Runnable,通常情况下使用两种方式的启动方式如下:
private void startNewThread(){
new Thread(){
@Override
public void run(){
//耗时操作
}
}.start();
}
启动带Runnable参数
private void startNewThread(){
new Thread(new Runnable(){
@Override
public void run(){
//耗时操作
}
}).start();
}
对示例一,实例二代码进行分析:实例一中代码使用Thread内的run函数执行操作,实例二中代码实际上为Thread的构造函数传递了一个Runnable对象,使用Runnable对象内的run方法执行耗时操作。两者之间的区别分析如下:
Thread源码如下:
class Thread implements Runnable {
//线程所属的ThreadGroup
private ThreadGroup group;
//需要执行的Runnable对象
private Runnable target;
public Thread() {
init(null, null, "Thread-" + nextThreadNum(), 0);
}
public Thread(Runnable target) {
init(null, target, "Thread-" + nextThreadNum(), 0);
}