Java里面的主线程是main函数,android里面的主线程(UI线程)是ActivityThread,Activity是运行在主线程里面的,google为了保障用户体验,规定主线程(UI界面)5s没响应就报错—ANR异常(Application not Responding),所以较为耗时的操作一般需要开启子线程完成,即Thread,Android中创建子线程有两种方法。
一是继承Thread类
public class SyncThread extends Thread {
@Override
public void run() {
synchronized (this) {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName()
+ " synchronizedloop " + i);
}
}
}
}
实现
SyncThread st1 = new SyncThread();
SyncThread st2 = new SyncThread();
st1.start();
st2.start();
二是实现Runnable接口
public class SyncRunnable implements Runnable {
@Override
public void run() {
synchronized (this) {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName()
+ " synchronizedloop " + i);
}
}
实现
SyncRunnable sr1 = new SyncRunnable();
SyncRunnable sr2 = new SyncRunnable();
sr1.start()
sr2.start()
一般为了方便而言,用Runnable的匿名内部类实现
Thread th=new Thread(new Runnable(){
@Override
public void run() {
System.out.println("Thread is running.");
}
});
th.start();