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性能优化典范(五):多线程编程

序言 这是Android性能优化典范第5季的课程学习笔记,拖拖拉拉很久,记录分享给大家,请多多包涵、担待指正!文章共有10个段落,涉及的内容有:多线程并发的性能问题,介绍了AsyncTask、...
  • u010069940
  • u010069940
  • 2016年10月11日 17:21
  • 755

Android中的多线程编程(一)附源码

Android中多线程编程:Handler类、Runnable类、Thread类之概念分析1.Handler类:Handler是谷歌封装的一种机制:可以用来更新UI以及消息的发送和处理。Handler...
  • u014225510
  • u014225510
  • 2015年07月25日 09:21
  • 1502

Android 的线程(AsyncTask、IntentService详解)和线程池

前言:不变的还是那颗勇往直前的心。          心得来源于:《Android开发艺术探索》 Android 的线程和线程池 在操作系统中,线程是操作系统调度的最小单元,同时线程又是一种...
  • wu371894545
  • wu371894545
  • 2016年11月22日 15:00
  • 12657

多线程编程php

早期的php并不支持多线程编程,采用curl_muti系列族模拟实现多线程,到现在已经可以实现多线程编程,并且线程安全机制ZTS( zend thread safe)多线程安全就是保证多个线程安全存取...
  • qq_21034239
  • qq_21034239
  • 2016年12月30日 10:31
  • 344

C++面向对象多线程编程简介

多线程编程引发的问题:死锁、无限延迟、数据竞争等。并发编程包括多任务(多进程)和多线程。 使用多线程编程时需包含头文件,具体测试程序代码如下: #include #include using na...
  • Alex123980
  • Alex123980
  • 2016年06月29日 11:32
  • 706

Android开发之多线程编程Thread和Runnable使用

Android可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;前者只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一...
  • mad1989
  • mad1989
  • 2014年07月28日 18:03
  • 44923

浅析C++多线程编程理论与实践

写这篇博客之前,由于对多线程也不是很了解,一直觉得多线程是个很神奇的东西,但项目中又需要用到,所以借此机会学习了一下,也算做个入门总结吧,写下来总是好的!言归正传,首先介绍几个多线程相关的基本概念: ...
  • kingsir2020
  • kingsir2020
  • 2016年08月20日 23:50
  • 1468

多线程(一)——多线程编程主要考虑的两大问题

工作不是专注于Windows编程,所以用MFC多为编写小测试程序,搞个对话框,放几个控件,加上响应函数,实现功能即可。最近又写了一个测试程序,功能依然很简单,就是循环处理数据,并把处理结果输出到Edi...
  • carefield
  • carefield
  • 2015年01月09日 10:06
  • 684

Android中的多线程编程详解

1. 为什么要用多线程 这里列出几个原因: a) 提高用户体验或者避免ANR 在事件处理代码中需要使用多线程,否则会出现ANR(Application is not responding),...
  • jie1991liu
  • jie1991liu
  • 2015年11月04日 15:54
  • 1299

MFC多线程编程之二——MFC中的多线程开发

五、MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,...
  • Arcsinsin
  • Arcsinsin
  • 2013年11月19日 22:02
  • 4244
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android多线程编程
举报原因:
原因补充:

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