IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 线程 asynctask thread -> 正文阅读

[移动开发]线程 asynctask thread

asynctask

asynctask是一种轻量级的异步任务类,可以在线程中执行后台任务,然后把任务执行结果传递到主线程,封装了thread和handler。采用了线程池的机制

线程池:asynctask就是通过线程池来执行异步任务的,

线程池的好处

1、重用线程池中的线程,避免了频繁创建和销毁线程

2、有效控制线程最大的并发数,避免了大量的线程之间因为相互抢占系统资源导致阻塞

3、简单的对线程进行管理,并提供定时执行以及指定间隔循环执行等功能

简单来说线程池就是系统为我们提供的管理线程的模块,通过它可以方便的控制项目中的线程,android中的线程池概念来自java中的executor,executor是一个接口,真正的线程池的实现是threadPoolExecutor,threadPoolExecutor提供了一系列参数来配置线程池

Thread

1、Thread的start()和run()是什么?

start()主要是启动线程,在内部调用runnable接口的run()方法,以单独的线程执行run()方法中的代码。

2、start()和run()的区别有哪些?

  • 方法的定义:start()方法在java.lang.Thread类中定义,而run()方法在Runnable接口中定义,必须在实现类中重写
  • 多次调用:start()方法不能多次调用,否则抛出异常,而run()方法可以多次调用,因为只是一种正常的方法调用。
  • 新线程创建:当调用start()方法,会创建一个新线程,然后执行run()方法。如果直接调用run()方法,则不会创建新的线程,run()方法将作为当前调用线程本身的常规方法调用执行,不会发生多线程。
  • 调用start()方法,会创建一个新的线程:
    
    class MyThread extends Thread {
        public void run() {
            System.out.println("当前线程的名称: " + Thread.currentThread().getName());
            System.out.println("run()方法调用");
        }
    }
    
    class demo {
        public static void main(String[] args) {
            MyThread t = new MyThread();
            t.start();
        }
    }
    
    直接调用()方法,不会创建新线程,而是在当前的线程执行run()方法
    
    class MyThread extends Thread {
        public void run() {
            System.out.println("\n");
            System.out.println("当前线程的名称: " + Thread.currentThread().getName());
            System.out.println("run()方法调用");
        }
    }
    
    class Test {
        public static void main(String[] args) {
            MyThread t = new MyThread();
            t.run();
        }
    }

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:34:18  更:2021-10-12 23:36:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:18:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码