asyn4j 是一个java异步方法调用框架,包括了异步方法执行,异步回调执行,异步工作缓存模块.支持Spring.
让我们写异步方法不再写很多的相关多线程代码。用asyn4j轻松搞定异步方法调用.提高程序的响应能力.
1.3更新
- 优化代码
- 新增任务持久与恢复功能
- 任务调用和回调做为一个整体
WIKI http://code.google.com/p/asyn4j/wiki/user_guide
Source SVN http://asyn4j.googlecode.com/svn/trunk/asyn4j
1 1.调用普通方法
2
3 主方法
4
5 public static void main(String[] args) {
6 // 初始化异步工作服务
7 AsynService anycService = AsynServiceImpl.getService(300, 3000L, 100, 100,1000);
8 //异步工作缓冲处理器
9 anycService.setWorkQueueFullHandler(new CacheAsynWorkHandler(100));
10 //服务启动和关闭处理器
11 anycService.setServiceHandler(new FileAsynServiceHandler());
12 //异步工作执行异常处理器
13 anycService.setErrorAsynWorkHandler(new DefaultErrorAsynWorkHandler());
14 // 启动服务
15 asynService.init();
16 // 异步回调对象
17 AsynCallBack back = new TargetBack();
18 for (int i = 0; i < 1000; i++) {
19 // 添加加异步工作- TargetService 的 test 方法 ,方法参数 asynej+ i
20 asynService.addWork(TargetService.class, "test", new Object[] { "asyn4j" + i },new TargetBack());
21 //实例化目标对象再调用
22 // TargetService targetService = new TargetService ();
23 //asynService.addWork(
24 // targetService , "test",new Object[] { "asyn4j" + i }, new TargetBack());
25
26 }
27 }
28
29 回调方法
30
31 //回调需继承AsynCallBack抽象类
32 public class TargetBack extends AsynCallBack {
33
34 @Override
35 public void doNotify() {
36 //输出异步方法调用结果
37 System.out.println(this.methodResult);
38
39 }
40
41 }
42
43 目标对象
44
45 //异步调用对象
46 public class TargetService {
47 public String test(String name){
48 System.out.println(name +" test is execute!");
49 return name;
50 }
51
52 }