多线程(一):定义,使用
1. 程序、进程和线程
程序是一个静态概念;进程是“程序”的一个运行实例;线程是一种轻量级进程,大多是情况下用于执行异步操作。线程是CPU调度的基本单位
相互关系:Android程序开始启动时,会单独启动一个进程,同时产生一个UIThread(Main线程)。
一个程序默认情况下只有一个Process,一个Process可以有多个Thread。
2. Where使用线程
(1)异步操作
(2)四大组件在main线程中运行,相互阻塞;或者在服务中执行长时间操作,如网络服务,上传文件等;
3. 开启线程方法:
(1)自定义线程类MyThread:继承Thread类,并改写run() 方法来实现一个线程
new MyThread().start();
(2)自定义类MyRunnable实现Runnable,
new Thread(new MyRunnable()).start();
(3)通过Handler启动线程:
public class MainActivity extends Activity{
private final static String TAG = “Android Thread … ”;
private Handler mHandler = new Handler();
private int count;
private Runnable mRunnable = new Runnable(){
@override
public void run(){
Log.e(TAG, Thread.currentThread().getName() + “ count = ”+count);
count++;
setTitle(String.valueOf(count));
mHandler.postDelay(mRunnable, 3000); // 延迟3秒,发送消息
}
};
@override
public void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
setContentView(R.layout.main);
mHandler.post(mRunnable); // 发送消息,启动线程运行。
}
@override
public void onDestroy(){
// 将线程销毁掉
mHandler.removeCallbacks(mRunnable);
super.onDestroy();
}