Thread 线程

进程 :正在运行的程序(不负责任务处理,负责程序运行所需要的资源 - 内存资源)
线程 :执行任务的最小单位(真正处理任务)

(一个进程有多个线程)

多线程 :多个线程去完成一个功能

先学习在 Java 中开启一个线程:
Thread
Runnable
Handler
AsyncTask(被淘汰了,但是再次之前应用很多)
Pool 线程池

在 Android 开发中,有一些常见的类和接口用于处理线程相关的操作,包括:

Thread :线程类,用于创建和管理线程。
Runnable :线程接口,定义了线程的执行代码。
Handler :用于在不同线程之间传递消息和执行操作。
AsyncTask :简化异步任务处理的工具类。

Executor:线程池的抽象接口,用于管理线程的执行。
Future:表示异步任务的结果,可以通过它来获取任务的执行状态和结果。

android 线程分为两类:
UI 主线程

  • 负责 UI 的相关事务,添加控件,显示控件,改变控件内容,用户交互
  • 和 UI 相关的事情必须放在 UI主线程处理
  • 在 UI 主线程里面,如果用户发现在 5 秒左右没有办法相应,那么就会报错:ANR(application not responding)程序无响应
  • 运行 -> UI 线程(和用户交互) -> 加载数据 10m (阻塞主线程) -> 继续执行

子线程

  • 处理耗时的任务(加载图片资源、视频、音频、写入文件、网络加载、数据加载)

  • Thread.currentThread() 获取当前线程

  • name 设置线程名称

  • start() 启动线程

daemon 守护线程(其他线程做完了,守护线程才可以做)

如何开启一个线程 Thread:

  • a: 足义一个类继承于 Thread 类
  • b: 定义一个类实现 Runnable 接口

Activity 的启动 onCreate onStart onRestart onResume 这几个方法会影 app 的启动速度
这里不要做耗时操作,如果非要做 两种解决办法:

  1. 用一个线程去处理
  2. 给 app 加一个启动页面

Handler :子线程和主线程之间交互

Looper : 消息循环 管理消息
不断去消息队列里判断有没有相应的消息
一旦发现有消息就将消息拿出来,给到 Handler

Handler 调用 handleMessage 方法

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2023-2025 Annie
  • Visitors: | Views:

嘿嘿 请我吃小蛋糕吧~

支付宝
微信