Android多线程编程

原创 2015年11月19日 21:28:59

Java 5引入了一个多线程的新的写法,Future,Callable,Executor,三者的关系及用法如下:
Callable:
它是一个接口,用来产生数据,类似于Runnable接口,
在使用时,必须写一个类实现Callable接口,然后复写call()方法,在call里面对数据进行操作,并返回

public class SunnyTestTask implements Callable<String>{

private String name;
public SunnyTestTask(String value){
 this.name = value;
}

public String call(){
 return name;
}

}

Executor:
Executor,相当于一个管理类,用于管理所有并发的线程,即线程池,我们可以通过它来创建指定的线程池,

注意:线程池并不是创建越多越好,因为线程的开启与销毁,都要消耗内存。

然后开辟的线程池统一由ExecutorService服务来管理。

ExecutorService service = Executors.newFixedThreadPool(2);

Future:
是用来接收实现Callable接口类所产生的数据的。Future类的实例不用new,
通过服务来提交任务所得到,这里的服务即ExecutorSevice;

SunnyTestTask task1 = new SunnyTestTask("Sunny1");
SunnyTestTask task2 = new SunnyTestTask("Sunny2");
Future<String> mFuture1 = service.submit(task1);
Future<String> mFuture2 = service.submit(task2);

Log.i("Sunny","task1:"+mFuture1.get()+"\ntask2:"+mFuture2.get());

以上就是Future,Callable,Executor三者的关系及用法。。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

老罗android视频多线程编程源码

  • 2015年08月07日 10:24
  • 11.85MB
  • 下载

Android开发中的多线程编程技术

  • 2012年07月25日 16:58
  • 1.48MB
  • 下载

Android多线程编程之四:Loaders

Loader的异步数据加载方式,给出API上Demo的程序供大家参考怎么使用 package com.example.loadertest; import android.app.Activi...
  • kj_wang
  • kj_wang
  • 2015年05月24日 12:46
  • 428

Android开发中的多线程编程技术

  • 2012年12月05日 13:25
  • 486KB
  • 下载

Android 多线程编程的总结

前言 这几天在研究Android的多线程方面的知识,阅读了许多大牛的文章,发现Android的多线程方式挺多的,关于各种方式的优缺点也都各有看法,所以这部分的知识还是很容易令人觉得混乱的,所以自...

Android 多线程编程技术

前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net       ...
  • luckkof
  • luckkof
  • 2013年06月04日 10:17
  • 759

Android 多线程编程:Handler消息传递机制—刷新UI主界面

一、为什么使用Handler  当一个Activity运行的时候,会开启一条主线程,主线程主要负责处理与UI相关的事件,主线程不允许其他子线程操控它,更新UI界面。既然不允许我们在子线程中操控UI界面...

一起Talk Android吧(第二十五回:Java多线程编程三)

各位看官们,大家好,上一回中咱们说的是Java多线程编程的例子,这一回咱们继续说该例子。闲话休提, 言归正转。让我们一起Talk Android吧!...
  • talk_8
  • talk_8
  • 2017年05月31日 15:11
  • 413

Android多线程编程之IntentService学习篇(三)

IntentService之初识除非你特别指定,否则大部分在前台UI界面上的操作都执行在一个特殊的线程(UI线程)当中。这将会导致一些问题出现,因为耗时操作将会影响用户界面的响应性能。这比较困扰你的用...

Android多线程编程(异步通信)--->Handler和AsyncTask

Handler机制:1)主线程UI:本身就有一个Looper机制,其中有Handler,中包含了消息队列MessageQueen:2)UI线程模型:UI主线程不允许其他线程操作组件,只有UI主线程能够...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android多线程编程
举报原因:
原因补充:

(最多只允许输入30个字)