Android线程池使用
来源:互联网 发布:淘宝缴费平台 编辑:程序博客网 时间:2024/05/19 19:57
前一篇博文讲了Android线程的创建和启动,创建有继承Thread类、实现Runnable接口、实现Callable接口等三种方法,启动都是调用了Start()方法来启动的,其实还可以用线程池来启动线程。
系统启动一个新线程的成本是比较高的,因为它涉及与操作系统交互。在这种情形下,使用线程池可以很好地提高性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池。
效果图
ThreadPoolActivity.java
package com.example.androidthreadpool;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.FutureTask;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.TextView;public class ThreadPoolActivity extends Activity { TextView txtShow1;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_thread_pool); txtShow1=(TextView)findViewById(R.id.txtShow1); //创建一个线程池 ExecutorService pool1=Executors.newFixedThreadPool(2); //将一个Runnable对象传递给线程池 FirstThread ft=new FirstThread(); pool1.submit(ft); //将一个Callable对象传递给线程池 FutureTask<String> task=new FutureTask<String>(new SecondThread()); pool1.submit(task); //创建一个具有延迟启动线程功能的线程池 ScheduledExecutorService pool2=Executors.newScheduledThreadPool(2); //延迟1秒启动线程 pool2.schedule(ft, 1, TimeUnit.SECONDS); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.thread_pool, menu); return true; } //实现Runnable接口创建线程类 public class FirstThread implements Runnable { @Override public void run() { txtShow1.append(Thread.currentThread().getName()+" implements Runnable"+"\n"); } } //使用Callable和Future创建线程类 public class SecondThread implements Callable<String> { public String call() { txtShow1.append(Thread.currentThread().getName()+" implements Callable"+"\n"); return " implements Callable"; } }}
0 0
- Android线程池使用
- Android线程池使用
- Android 线程池使用
- Android线程池使用
- android 线程池使用
- Android线程池使用
- Android线程池的使用
- Android线程池的使用
- Android线程池使用详解
- Android 线程池的使用
- Android线程池使用心得
- Android线程池的使用
- Android 线程池的使用
- Android 线程池的使用
- 【Android】Android中线程池使用ExecutorService
- Android线程,线程池使用及原理博文参考
- Android线程,线程池使用及原理博文参考
- Android线程,线程池使用及原理博文参考
- 关于mysql 5.5和5.6编译安装
- 关于向上转型,你要了解的
- 数字签名是什么
- C#Bitmap裁剪图片后显示在pictureBox内,形成图片移动效果
- php-数组教程简介
- Android线程池使用
- 单页面应用越来越像游戏, 我们是否有好的架构来对待-
- 【Unity Shaders】初探Surface Shader背后的机制
- Android中Java和JavaScript交互
- 在php中的作用
- 串行总线硬盘为什么比并行总线硬盘快?
- 如何使用Ant自动构建Android版本
- 黑马程序员 java之反射
- [leetcode 148] Sort List