Android - 线程的理解

Android - 线程的理解

线程:

  • 线程是个单一执行序列。单个线程中的代码会逐步执行到结束。

主线程:

  • 所有Android应用的运行都是从主线程开始的。
  • 主线程不是线程那样的预定执行序列。相反,它处于一个无限循环的运行状态,等着用户或系统触发事件。一旦有事件触发,主线程便执行代码做出响应。
  • 主线程运行着所有更新UI的代码,其中包括响应activity的启动、按钮的点击等不同UI相关事件的代码。
举例:

假如你是上班一族,早9晚12,每天刷牙洗脸上班回家睡觉,都是你的任务(主线程)。

今天下午9点你突然想在12点下班前打开家里空调,而此时你还在加班回不去,这时候你让你老婆打开空调,你老婆收到任务(开子线程),帮你打开了空调,这件事情就结束了(单一执行直到结束)。你回到家就能享受凉爽了。

第二天你去上班,原本你一天工作量为10,今天老板突然说赶进度,给你分配20个任务,这时候你扛不住了,猝死!这就是阻塞(ANR)!如果说再给你找个小弟(开线程,如网络请求),做其中的一部分,你就不会猝死了。

例子不太好,毕竟你没有老婆。仅供参考,是我自己的理解,欢迎提出意见。