假设我有一个方法运行如下,
public void run()
{
for(i=loopstart;i<loopend;i++){
//some code here to execute. no dependency exists
}
loopstart & loopend变量具有循环执行的最小值和最大值。
现在我要做的就是将此循环执行分为 2 到 5 个线程,以便并行执行。为此,我已将此方法更改为
public void run()
{
for(i=thread_start; i<thread_end; i++)
//some code here to execute.
}
变量thread_start和thread_end是每个线程必须运行的范围。那么最好如何划分循环执行。假设我在范围内执行循环
5-94
我想根据线程数将其划分为多个执行范围。
例如
threads ranges
2 5-44, 45-94
3 5-34, 35-65, 66-94
这些只是示例(不准确)。我想根据可用的线程划分它的执行。
所以对于2个线程,
thread_start=5 ,thread_end=44 1st thread
thread_start=45 ,thread_end=94 2nd thread.
我应该如何(使用java代码)在几乎相同的长度范围内划分循环执行?