详情请看:http://www.cnblogs.com/yezhenhan/archive/2012/01/07/2315645.html

引入ExecutorService 类

    private static final ExecutorService executes=Executors.newCachedThreadPool(); 

把需要处理的逻辑代码在放 run里面

需要传入参数 定义变量为final 类型

//定义变量为 final 
final long size = imageFile.getSize(); Runnable runnable = new Runnable() {
public void run() {
//处理代码 }
};
executes.execute(runnable);

使用线程池 基类

/**
* 线程池类
* @ClassName ThreadPools.java
* @Description
* @author caijy
* @date 2015年6月9日 上午10:50:38
* @version 1.0.0
*/
public class ThreadPools {
private ThreadPoolExecutor threadPool;//线程池
private ThreadPools(){
//初始200 最大400
threadPool = new ThreadPoolExecutor(200, 400, 1,
TimeUnit.MICROSECONDS, new LinkedBlockingQueue<Runnable>()); }
private static ThreadPools instance = new ThreadPools();
/**
* 获取线程池的单例对象
* @return
*/
public static ThreadPools getInstance()
{
return instance;
}
/**
* 得到线程池
* @return
*/
public ThreadPoolExecutor getPools(){
return threadPool;
}
/**
* 提交线程
* @param <V>
* @param callable
* @return
* @throws InterruptedException
* @throws ExecutionException
*/
public <V> Future<V> submit(Callable<V> callable) throws InterruptedException, ExecutionException{
return threadPool.submit(callable);
}
/**
* 执行线程
* @param command
*/
public void execute(Runnable command){
threadPool.execute(command);
}
/**
* 关闭线程池
* @throws Exception
*/
public void shutDown() throws Exception{
threadPool.shutdown();
}

使用方式

    //获取线程池
ThreadPools instance=ThreadPools.getInstance();
//拼接文件路劲
final String thumbnailFilePathName = realPath + File.separator + thumbnailPathName;
//拼接文件路劲
final String filePathNameTon = realPath + File.separator + pathName;
final long size = imageFile.getSize();
//保存图片成功后在 来压缩图片
Runnable runnable = new Runnable() {
public void run() {
//处理逻辑 }
};
instance.execute(runnable);

java 异步处理的更多相关文章

  1. Java 异步处理简单实践

    Java 异步处理简单实践 http://www.cnblogs.com/fangfan/p/4047932.html 同步与异步 通常同步意味着一个任务的某个处理过程会对多个线程在用串行化处理,而异 ...

  2. Paip.Php Java 异步编程。推模型与拉模型。响应式(Reactive)”编程FutureData总结... 1

    Paip.Php  Java 异步编程.推模型与拉模型.响应式(Reactive)"编程FutureData总结... 1.1.1       异步调用的实现以及角色(:调用者 提货单) F ...

  3. java异步编程降低延迟

    目录 java异步编程降低延迟 一.ExecutorService和CompletionService 二.CompletableFuture(重要) 三.stream中的parallel(并行流) ...

  4. java 异步机制与同步机制的区别

    所谓异步输入输出机制,是指在进行输入输出处理时,不必等到输入输出处理完毕才返回.所以异步的同义语是非阻塞(None Blocking). 网上有很多网友用很通俗的比喻  把同步和异步讲解的很透彻 转过 ...

  5. OS信号实现Java异步通知

    OS信号实现Java异步通知本文将结合操作系统的信号机制,来尝试实现一个简单的,不依赖功能环境的Java异步通知功能.没有特殊说明,本文所有的示例,都是基于Linux.信号简介信号是在软件层次上对中断 ...

  6. 终于可以愉快的撸Java异步代码了!

      异步响应式编程可以极大的提高系统的并发呑吐量,但由于Java没有类似于其他语言的Async/Await机制,所以只能通过CompletableFuture.thenXXX()来串联各个异步任务,这 ...

  7. 说说Java异步调用的几种方式

    日常开发中,会经常遇到说,前台调服务,然后触发一个比较耗时的异步服务,且不用等异步任务的处理结果就对原服务进行返回.这里就涉及的Java异步调用的一个知识.下面本文尝试将Java异步调用的多种方式进行 ...

  8. Java 异步编程 (5 种异步实现方式详解)

    ​ 同步操作如果遇到一个耗时的方法,需要阻塞等待,那么我们有没有办法解决呢?让它异步执行,下面我会详解异步及实现@mikechen 目录 什么是异步? 一.线程异步 二.Future异步 三.Comp ...

  9. [译] MongoDB Java异步驱动快速指南

    导读 mongodb-java-driver是mongodb的Java驱动项目. 本文是对MongoDB-java-driver官方文档 MongoDB Async Driver Quick Tour ...

  10. Java异步消息平台

    l  JAVA平台异步消息模块 JAVA平台异步消息模块,是一个针对RabbitMQ的消息发送及处理封装,包含消息的配置.发送.接收.失败重试.日志记录等,总共分为4个部分: 1)RabbitMQ访问 ...

随机推荐

  1. SharePoint 2013 托管导航及相关配置 <二>

    本文的思路是使用JQuery重写SharePoint自带托管导航的样式,其实思路和脚本都非常简单,引用一下JQuery脚本,然后重写导航的样式,把脚本放到母版页中,即可.当然,使用JQuery可以做很 ...

  2. Android-两种方式实现走马灯效果

    第一种方法(很普遍,很简单的在xml布局文件中设置TextView的属性): <TextView android:id="@+id/tv_text" android:layo ...

  3. Git常用命令总结

    Git常用命令总结 git init      在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.   git clone ...

  4. IOS开发基础知识--碎片10

    1:如何给表格单元列增加选择时的背影效果 if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCel ...

  5. 5、软件架构师要阅读的书籍 - IT软件人员书籍系列文章

    软件架构师在项目中的地位是不言而喻的,其对于项目的需求要相对比较了解,然后对项目代码的结构需要做到覆盖全面.本文就说说作为一个软件架构师需要阅读的一些书籍. 当然,这些书籍都来源于网络,是笔者收集整理 ...

  6. JavaScript Array和string的转换

    Array类可以如下定义: var aValues = new Array(); 如果预先知道数组的长度,可以用参数传递长度 var aValues = new Array(20); -------- ...

  7. 下一代Asp.net开发规范OWIN(2)—— Katana介绍以及使用

    接上篇OWIN产生的背景以及简单介绍,在了解了OWIN规范的来龙去脉后,接下来看一下Katana这个OWIN规范的实现,并看看如何使用在我们的Web开发中. 阅读目录: 一. Katana项目的结构和 ...

  8. RMAN-03002, RMAN-06059, ORA-19625 and ORA-27037 When Running RMAN Backup of Archivelogs

    RMAN备份数据库时,出现下面错误错误信息: Starting backup at 25-MAY-15 current log archived allocated channel: ORA_DISK ...

  9. ORA-04091: table xxxx is mutating, trigger/function may not see it

    今天同事让我看一个触发器为什么老是报错,当执行DML语句触发触发器后,会报ORA-04091错误:ORA-04091: table xxxx is mutating, trigger/function ...

  10. [转载]Linux 线程实现机制分析

    本文转自http://www.ibm.com/developerworks/cn/linux/kernel/l-thread/ 支持原创.尊重原创,分享知识! 自从多线程编程的概念出现在 Linux ...