Runnable

简介: 在Android中,为避免造成UI Thread的卡顿,Google推荐奖所有的非UI 的操作都放到后台线程去执行,也就是Work Thread。

一.概述

在Android中,为避免造成UI Thread的卡顿,Google推荐奖所有的非UI 的操作都放到后台线程去执行,也就是Work Thread。Runnable是一个接口,实现了这个接口就代表可执行,Thread 有带Runnable相应的构造方法,有时候会涉及Runnable这个接口。当然,Google也提供了一个封装好了的异步线程AsyncTask,避免自己去创建和管理自己的线程池。能力有限,不喜勿喷o, kensoon918@163.com only for feedback.

二.Runnable

Runnable 接口只包涵一个public的抽象方法 run(),相应的子类有:

AnimationDrawable
CookieSyncManager
ForkJoinWorkerThread
FutureTask<V>
HandlerThread
RenderScript.RSErrorHandler
RenderScript.RSMessageHandler
RunnableFuture<V>
RunnableScheduledFuture<V>
Thread
TimerTask

三.总结

Runnable 可以和Handler 结合起来使用,达成很多的目的,例如定时:

        Handler mHandler = new Handler();
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                //定时过后需要执行的代码
            }
        }, 1000);
目录
相关文章
|
1月前
|
Java
为什么一般采用实现Runnable接口创建线程?
因为使用实现Runnable接口的同时我们也能够继承其他类,并且可以拥有多个实现类,那么我们在拥有了Runable方法的同时也可以使用父类的方法;而在Java中,一个类只能继承一个父类,那么在继承了Thread类后我们就不能再继承其他类了。
28 0
|
5月前
|
存储 缓存 安全
(八)深入并发之Runnable、Callable、FutureTask及CompletableFuture原理分析
关于Runnable、Callable接口大家可能在最开始学习Java多线程编程时,都曾学习过一个概念:在Java中创建多线程的方式有三种:继承Thread类、实现Runnable接口以及实现Callable接口。但是实则不然,真正创建多线程的方式只有一种:继承Thread类,因为只有`new Thread().start()`这种方式才能真正的映射一条OS的内核线程执行,而关于实现Runnable接口以及实现Callable接口创建出的Runnable、Callable对象在我看来只能姑且被称为“多线程任务”,因为无论是Runnable对象还是Callable对象,最终执行都要交由Threa
110 1
|
6月前
|
Java
揭秘!为何Java多线程中,继承Thread不如实现Runnable?
【6月更文挑战第19天】在Java多线程中,实现`Runnable`比继承`Thread`更佳,因Java单继承限制,`Runnable`可实现接口复用,便于线程池管理,并分离任务与线程,提高灵活性。当需要创建线程或考虑代码复用时,实现`Runnable`是更好的选择。
60 0
runnable 和 callable 有什么区别
runnable 和 callable 有什么区别
Thread、Runnable、线程池
Thread是Java中的一个类,用于表示一个线程,它实现了Runnable接口。 通过创建Thread对象,可以创建并启动一个新的线程,执行指定的代码。
|
Java
runnable 和 callable 有什么区别
Runnable和Callable都是用于实现多线程的接口,区别在于返回结果、异常处理、阻塞和结果处理等方面。选择使用Runnable还是Callable取决于任务的需求和场景。
288 0
JavaThread、Runnable、Callable、线程池的使用
JavaThread、Runnable、Callable、线程池的使用
104 0
JavaThread、Runnable、Callable、线程池的使用
ThreadPoolExecutor的中的submit和FutureTask || 通过Executors 创建线程池的一些实例(Callable和Runnable的在其中的体现)
ThreadPoolExecutor的中的submit和FutureTask || 通过Executors 创建线程池的一些实例(Callable和Runnable的在其中的体现)
219 0
implements Runnable与extends Thread 的区别
implements Runnable与extends Thread 的区别
85 0
|
Java
老徐和阿珍的故事:Runnable和Callable有什么不同?
阿珍探出头看了看老徐的屏幕,全部都是绿色的曲线图,好奇地问:“老徐,你看的这是什么?”老徐看的太入神,转过头才发现阿珍,尬尴地笑了笑说:“我就是看看最近的行情。”老徐立马切换了窗口。 阿珍没在意又继续问到:“Runnable和Callable两个接口我总搞混,这个到底有什么不同?”
1675 0
老徐和阿珍的故事:Runnable和Callable有什么不同?