Runnable

一.概述

在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);
时间: 2024-09-20 12:16:59

Runnable的相关文章

runnable-线程一直处于RUNNABLE,也没有发现阻塞或是死锁的情况?

问题描述 线程一直处于RUNNABLE,也没有发现阻塞或是死锁的情况? 我写的是一个频繁访问网络的爬虫,启了20个线程: 但是老实跑了一段时间,线程全部处于RUNNABLE状态了: 网络使用的是httpclient3.1; 我把threaddump给放到下面: "Thread-19" #30 prio=5 os_prio=0 tid=0x0000000059b3d000 nid=0xcb4 runnable [0x000000005ba1e000] java.lang.Thread.S

多线程Runnable和Thread产生线程

  http://dev.yesky.com/186/2547686.shtml public class Test { public static void main(String[] args) throws Exception{ MyThread mt = new MyThread(); mt.start(); mt.join(); Thread.sleep(3000); mt.start(); } } 当线程对象mt运行完成后,我们让主线程休息一下,然后我们再次在这个线程对象上启动线程.

回顾runnable

在本章早些时候,我曾建议大家在将一个程序片或主Frame当作Runnable的实现形式之前,一定要好好地想一想.若采用那种方式,就只能在自己的程序中使用其中的一个线程.这便限制了灵活性,一旦需要用到属于那种类型的多个线程,就会遇到不必要的麻烦. 当然,如果必须从一个类继承,而且想使类具有线程处理能力,则Runnable是一种正确的方案.本章最后一个例子对这一点进行了剖析,制作了一个RunnableCanvas类,用于为自己描绘不同的颜色(Canvas是"画布"的意思).这个应用被设计成

Java多线程初学者指南(3):使用Runnable接口创建线程

实现Runnable接口的类必须使用Thread类的实例才能创建线程.通过Runnable接口创建线程分为两步: 1.将实现Runnable接口的类实例化. 2.建立一个Thread对象,并将第一步实例化后的对象作为参数传入Thread类的构造方法. 最后通过Thread类的start方法建立线程. 下面的代码演示了如何使用Runnable接口来创建线程: package mythread; public class MyRunnable implements Runnable { public

[JAVA100例]061、实现Runnable

/** * <p>Title: 实现Runnable接口,获得线程.</p> * <p>Description: 通过实现Runnable接口来获得自己的线程(t2).</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: twothread.java</p> * @version 1.0 */ public class twothread impl

关于多线程Runnable的问题~

问题描述 publicclassNewsThreadimplementsRunnable{​privateNewsServicensi=newNewsServiceImpl();​privateList<news>newslist=newArrayList<news>();​privateStringname;​@Override​publicvoidrun(){​//TODOAuto-generatedmethodstub​newslist=nsi.select(0);//一个获

Android中Handler Runnable与Thread的区别详解

转自: http://www.codeceo.com/article/android-handler-runnable-thread.html Android中Handler可以异步控制Runnable,那么这样做于Android中的Thread有什么区别呢?本文将通过多个角度来讲解这个问题,读完此文,相信你会对Android中的Handler Runnable与Thread有一个非常全面的了解. 在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Th

run()运行结束后 thread会再次进入runnable()状态吗?

问题描述 run()运行结束后 thread会再次进入runnable()状态吗? run()运行结束后 thread会再次进入runnable()状态吗? 谢谢. 解决方案 run结束后,线程就退出了

利用runnable接口的父类被继承,子类运行后会产生几个线程

问题描述 利用runnable接口的父类被继承,子类运行后会产生几个线程 父类使用了runnable接口,子类继承父类,那么调用子类的start()方法后,会产生几个线程? //父类 public class father implements Runnable { public void run() {} } //子类 public class son { public void run() {super.run();} } 大概的意思就是像代码那样,不知道会创建多少个线程,怎么查看线程数目呢

Java多线程--认识多线程(Thread、Runnable)

1.进程与线程 dos系统:单进程.只能有一个程序独自运行,其他程序无法运行. windows系统:多进程.同一时间段上有多个程序同时运行. 2.java的多线程实现 在java中实现多线程可以采用两种方式: 继承Thread类. 实现Runnable接口. 3.Thread类 java.lang包会在程序运行时自动导入,所以不用编写import语句. class MyThread extends Thread{ // 继承Thread类,作为线程的实现类 private String name