java 异步处理
详情请看: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 异步处理的更多相关文章
- Java 异步处理简单实践
Java 异步处理简单实践 http://www.cnblogs.com/fangfan/p/4047932.html 同步与异步 通常同步意味着一个任务的某个处理过程会对多个线程在用串行化处理,而异 ...
- Paip.Php Java 异步编程。推模型与拉模型。响应式(Reactive)”编程FutureData总结... 1
Paip.Php Java 异步编程.推模型与拉模型.响应式(Reactive)"编程FutureData总结... 1.1.1 异步调用的实现以及角色(:调用者 提货单) F ...
- java异步编程降低延迟
目录 java异步编程降低延迟 一.ExecutorService和CompletionService 二.CompletableFuture(重要) 三.stream中的parallel(并行流) ...
- java 异步机制与同步机制的区别
所谓异步输入输出机制,是指在进行输入输出处理时,不必等到输入输出处理完毕才返回.所以异步的同义语是非阻塞(None Blocking). 网上有很多网友用很通俗的比喻 把同步和异步讲解的很透彻 转过 ...
- OS信号实现Java异步通知
OS信号实现Java异步通知本文将结合操作系统的信号机制,来尝试实现一个简单的,不依赖功能环境的Java异步通知功能.没有特殊说明,本文所有的示例,都是基于Linux.信号简介信号是在软件层次上对中断 ...
- 终于可以愉快的撸Java异步代码了!
异步响应式编程可以极大的提高系统的并发呑吐量,但由于Java没有类似于其他语言的Async/Await机制,所以只能通过CompletableFuture.thenXXX()来串联各个异步任务,这 ...
- 说说Java异步调用的几种方式
日常开发中,会经常遇到说,前台调服务,然后触发一个比较耗时的异步服务,且不用等异步任务的处理结果就对原服务进行返回.这里就涉及的Java异步调用的一个知识.下面本文尝试将Java异步调用的多种方式进行 ...
- Java 异步编程 (5 种异步实现方式详解)
同步操作如果遇到一个耗时的方法,需要阻塞等待,那么我们有没有办法解决呢?让它异步执行,下面我会详解异步及实现@mikechen 目录 什么是异步? 一.线程异步 二.Future异步 三.Comp ...
- [译] MongoDB Java异步驱动快速指南
导读 mongodb-java-driver是mongodb的Java驱动项目. 本文是对MongoDB-java-driver官方文档 MongoDB Async Driver Quick Tour ...
- Java异步消息平台
l JAVA平台异步消息模块 JAVA平台异步消息模块,是一个针对RabbitMQ的消息发送及处理封装,包含消息的配置.发送.接收.失败重试.日志记录等,总共分为4个部分: 1)RabbitMQ访问 ...
随机推荐
- ios 开发之单例模式
在iOS开发中,有很多地方都选择使用单例模式.有很多时候必须要创建一个对象,并且不能创建多个,用单例就为了防止创建多个对象.单例模式的意思就是某一个类有且只有一个实例.单例模式确保某一个类只有一个实例 ...
- iOS 摇一摇的功能
效果如下 相关素材 相关代码如下 #import "ShakeViewController.h" #import <AudioToolbox/AudioToolbox.h&g ...
- iOS开发之聊天模块--内容保存逻辑实现
需求详解: 在实际开发中,有可能是在后期优化的时候,会有这么需要优化的需求:聊天输入框保存之前输入的文本,提高用户的良好体验. 在聊天模块中,用户可能会在输入框输入若干字符,但是没有点击发送就点击退出 ...
- Play Framework 完整实现一个APP(四)
上一篇最后出现的错误是因为断言 assertEquals(1, Post.count()); 出错,取到的Post的数量不是1,运行Test之前,表中有数据 可以添加以下方法,运行Test前清空数据 ...
- mysqldump: Error: Binlogging on server not active
在学习使用mysqldump时,使用mysqldump备份时,遇到了下面两个错误: [root@DB-Server backup]# ./mysql_dump_back.sh Warning: Usi ...
- JDBC API Description
package java.sql description What the JDBCTM 4.2 API Includes Versions What the java.sql Package Con ...
- 初探PHP多进程
h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...
- mysql5.7.1 zip版本安装记录
很久没遇到使用mysql的项目了,今天下载了个,发现变了很多,搜索了下,发现按http://www.cnblogs.com/wenthink/p/MySQLInstall.html中提到的基本可以使用 ...
- SQL*LOADER错误总结
在使用SQL*LOADER装载数据时,由于平面文件的多样化和数据格式问题总会遇到形形色色的一些小问题,下面是工作中累积.整理记录的遇到的一些形形色色错误.希望能对大家有些用处.(今天突然看到自己以前整 ...
- .dat 导入sqlserver2000
所有任务->还原数据库->从设备.选项中改变路径地址