Android多线程系统概述
一、我们把线程系统分两类:
1.操作系统内核实现了线程模型(核心级线程)Windows-线程与进程的多对多模型,线程的调度者在核内;
2.操作系统核外的线程(用户级线程)-Linux,部分Unix-线程与进程的一对一,一对多模型,线程的调度者在核外。
二、Linux系统如何支持多线程的?
Linux线程是通过线程库模型来进行的。
两个线程库:
1)LinuxThread;2)NPTL(也是采用的1:1的结构,但在信号处理、线程同步、存储管理等多方面进行了优化)。
Linux底层随后继续。
3.android如何进行多线程或者异步的处理?
new Thread
三、什么时候需要多线程和异步?
多线程与异步:说白了就是耗时操作和定时操作,(android中耗时一般是指超过5秒;定时一般是指一个schedule task的需要,主线程不跑,后面的线程要跑)
IO操作(网络操作、文件操作、数据操作...);复杂的 运算工作;消息接收方法中的耗时操作;计划任务。
四、多线程和界面交互
1.Activity.runOnUIThread(Runnable)
2.View.post(Runnable);VIew.postDelay(Runnable,long)
3.Handler
4.AsyncTask
五、Android UI主线程简单原则
1.不要Block UI Thread;
2.不要UI线程外直接操作UI;