在多线程编程这块,我们经常要使用Handler,Thread和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢?

首先说明Android的CPU分配的最小单元是线程,Handler一般是在某个线程里创建的,因而Handler和Thread就是相互绑定的,一一对应。

而Runnable是一个接口,Thread是Runnable的子类。所以说,他俩都算一个进程。

HandlerThread顾名思义就是可以处理消息循环的线程,他是一个拥有Looper的线程,可以处理消息循环。

与其说Handler和一个线程绑定,不如说Handler是和Looper一一对应的。

最后需要说明的是,在UI线程(主线程)中:

mHandler=new Handler();

mHandler.post(new Runnable(){

void run(){

//执行代码...



}

});

这个线程其实是在UI线程之内运行的,并没有新建线程。



常见的新建线程的方法是:

Thread thread = new Thread();

thread.start();



HandlerThread thread = new HandlerThread("string");

thread.start();

更多相关文章

  1. Android(安卓)开发之多线程处理、Handler 详解
  2. [置顶] Android(安卓)AsyncTask源码解析
  3. android 消息机制 Handler Looper 原理分析
  4. : Android下WebView取JavaScript传值问题解决
  5. android Handler 优势和劣势【原创】
  6. android第三方应用跳转到QQ并指定QQ号聊天
  7. Android(安卓)使用Messenger实现跨app通信
  8. Android面试题 -
  9. [置顶] Android(安卓)Handler Message Looper机制原理

随机推荐

  1. 使用bootstrap 3,你如何拥有一个完全不同
  2. 让列在3列CSS布局中扩展到相同的高度?
  3. 如何配置访问WAS部署中的html文件
  4. 文件上传js打开文件管理器过滤只显示指定
  5. 单击链接中的复选框会导致以下链接——我
  6. HTML5 windows和iframe之间传递消息
  7. HTML5视频标签使用时注意事项
  8. html5中点击按钮,改变按钮状态效果样式
  9. 我得到一个警告坏js小提琴配置
  10. 选择父母没有某个类的所有元素(使用'.not()'