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