
线程与异步
文章平均质量分 55
任缥缈
天狼啸月的追逐
展开
-
Android多方案实现定时器功能
在Android的项目开发过程中,我们经常会用到定时计时功能,本文今天大题整理下这方面的知识技术。聊做总结。 方案一、Timer+TimerTask实现: 这个方案相比无聊时Java开发者还是Android开发者,都是熟悉得不能再熟悉了。不多说,简单的几行代码做介绍就行: Timer timer = new Timer(); timer.schedule(timerTask, 10, 3); T...原创 2018-11-15 17:56:18 · 578 阅读 · 0 评论 -
Timer+TimerTask的升级版ScheduledExecutorService
ScheduledExecutorService是一个接口,是继承于接口ExecutorService的子类,而ExecutorService又是继承于Executor接口的子类。 这里我们先从继承的最终类Executor接说起。 Executor接口只有一个方法:void execute(Runnable command);他是一个同步方法,接收一个Runnable接口作为参数。具体由imple...原创 2018-11-17 22:07:18 · 545 阅读 · 0 评论 -
线程Thread与Runnable接口
之前一直是懵懂的使用Thread,对这个并没有太完整的概念。最近看了一些资料并在小项目中使用到了一些相关技术,现结合实际应用与查阅到的资料,聊着总结。一、首先,线程和线程类的区别:线程是硬件资源CPU调度任务执行的最小单元,是一个抽象的概念;线程类本质上就是一串可执行的代码,在Java中就是Thread.class文件。 Thread线程的定义如下public class Thread extend原创 2017-11-21 17:32:50 · 2849 阅读 · 0 评论 -
UI线程与自定义线程的区别
UI线程是从ActivityThread.java类的main()方法里面启动的,并在启动的时候,调用了Looper.prepareMainLooper()方法生成looper对象。 另外该线程还创建了MessageQueue消息队列,因此可以直接在Activity里面创建Handler对象并进行通信。 自定义的普通线程可以在需要的地方创建并启动,没什么限制,他是一个裸线程,既没有looper对象...原创 2019-10-28 21:02:56 · 605 阅读 · 0 评论 -
多线程和线程池的比较与理解
话不多说,直接上代码,要说的都在代码注释里面: public class ThreadPools { //TODO:ThreadPoolExecutor的执行规则—— //1.如果线程池中的线程数量未达到核心线程的数量,那么直接启动一个核心线程; //2.如果线程池中的线程数量已经达到或者超过核心线程的数量,那么任务会被插入到任务队列中排队等待执行。 //3.如果在步骤2中无法将...原创 2019-11-03 00:51:32 · 1131 阅读 · 1 评论 -
IntentService源码解析及使用注意事项
在说IntentService 之前我们先来了解下Service,Service 是长期运行在后台的应用程序组件。Service 不是一个单独的进程,它和应用程序在同一个进程中,它也不是一个线程,它和线程没有半毛钱关系,所以它不能处理耗时操作。如果直接把耗时操作放在 Service 的 onStartCommand() 中,很容易引起 ANR。如果有耗时操作就必须开启一个单独的线程来处理。 Int...原创 2020-04-28 10:25:14 · 315 阅读 · 0 评论 -
AsyncTask异步的源码解析及并发实现
AsyncTask是一种轻量级的异步任务类,它可以在线程池中执行后台任务,然后会把执行的进度和最终结果传递给主线程并更新UI。从实现上来说,AsyncTask内部封装了Thread和Handler,通过AsyncTask可以更加方便的执行后台任务以及在主线程中访问UI,但AsyncTask并不适合非常耗时的后台任务,对于特别耗时的任务,建议使用线程池。 AsyncTask本身是一个抽象的泛型类,它...原创 2020-04-28 10:35:53 · 265 阅读 · 0 评论 -
线程池及Executor的源码解析
线程池的继承结构: 首先,我们为什么要使用线程池?因为使用线程池好处多多: 1、降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 2、提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 3、提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。 然后,我们来看看线程池的继承结...原创 2020-05-04 12:24:45 · 287 阅读 · 0 评论