Java并发编程的疑问

12-07-24 dingshuangxi888
最近在做对Java系统的优化

原来的系统结构大致是这样:

一共有4个算法:

算法A, 算法B, 算法C, 算法D

当一个请求过来的时候,先通过算法A计算出结果,如果没有获得结果就去调用算法B,如果在没有结果就去访问C,以此类推到D。这是一个串行的结构。

因为部分算法是通过网络的访问的,所以可能会在某个算法上出现block,为了不想在这里占用太多的时间,老板要求这4个算法以并行的方式执行,其中算法A的优先级比其他算法高,控制并行执行的时间如100秒,100秒后不管4个算法有没有全部执行完(不考虑全部没有执行完的可能性),结束执行,最后获取已经执行完的算法的结果,比较这些值,选出最有结果。

不知各位对这样的需求有何高见

[该贴被dingshuangxi888于2012-07-24 14:33修改过]

1
banq
2012-07-24 19:28

先加一个事件总线看看,复杂一点用 fork/join 或引入 hadoop.

猜你喜欢