Prototype功能預覽一:一個註解實現多項業務處理並行(Fork/Join)

更多內容請參考: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框架,程序員無需寫複雜的多線程操作。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章