Prototype功能预览一:一个注解实现多项业务处理并行(Fork/Join)

来源:互联网 发布:地税优化营商环境 编辑:程序博客网 时间:2024/06/05 17:42

更多内容请参考:http://blog.csdn.NET/flyxxxxx/article/category/7055640

对此框架有兴趣或想参与开发的请加QQ群:255195191


以下演示一段基于Prototype框架多线程的Fork/Join例子


@Prototype //此注解标识这是一个基于原型模式的类
public class ForkBusiness {

   //如果并发的方法有输出数据,可以在这里定义类的成员变量

    @Fork(value = { "m1", "m2" })
    public void fork() {
        ...
    }

  //这里的TestService在方法被调用时,Prototype框架自动从Spring ApplicationContext中注入
    void m1(TestService ts) throws InterruptedException {
        Thread.sleep(1000);//这是为了演示用,因此不调用RPC方法
    }

    void m2() throws InterruptedException {
        Thread.sleep(1000);//这是为了演示用,因此不调用RPC方法
    }
}

测试代码:

public void test(){

  ForkBusiness busi=new ForkBusiness();

  busi.fork();//此方法调用完成的时间将略大于1000毫秒,而不是依次执行方法fork/m1/m2的总时间.

}

以上代码,当调用fork方法时:

1、首先从spring applicationContext中找到线程池(如果没有则开始新线程)

2、将方法m1,m2包装为两个Runnable,加入线程池中执行

3、当上述两个Runnable都执行完成后,执行方法fork的内容


使用Prototype框架,程序员无需写复杂的多线程操作。


阅读全文
0 0
原创粉丝点击