cyp*_*aya 5 java parallel-processing
像查找使用BigInteger的因子2000这样的任务是一项CPU密集型任务,无论如何都要加速这样的过程?
例如:找到2000!由于它只是一个单独的任务,我认为这里不需要线程(因为运行此程序或在线程中运行此任务都必须执行此类CPU密集型操作).
我听说Java 7为计算密集型任务引入了一种新的并行机制.那么,我如何在其中执行此类事情?
Ron*_*ein 12
通过最终合并,可以很容易地将因子分解为两个任务.如果你愿意,这是某种map-reduce.
例:
9! = (7*5*3*1) * (8*6*4*2)
Run Code Online (Sandbox Code Playgroud)
所以你可以有两个任务.
这可以推广到任何数量的并行任务中.
这个解决方案与Java没有任何关系,它是关于将"常规"解决方案转换为并行解决方案.