java中循环结构的并行处理

java中循环结构的并行处理,java,parallel-processing,Java,Parallel Processing,我正在努力创建一个爬虫程序——一个java web应用程序,用户可以在其中定义爬虫作业,从特定网站提取和存储信息 作为这项工作的一部分,有一个“循环”结构。。。它有一个列表部分,最初对其进行评估(通常表示一个值列表)。。。之后是循环体,它对列表中的每个项目执行一次(来自前面提到的列表部分) 请注意,在另一个循环构造中可以有一个循环构造,依此类推 问题是,有时一个列表可能包含数百万行数据,而主体将为此列表中的每一行执行。正文有一个起始索引值,即索引的上限,并递增1 我想做的是,对于单级循环,首先计

我正在努力创建一个爬虫程序——一个java web应用程序,用户可以在其中定义爬虫作业,从特定网站提取和存储信息

作为这项工作的一部分,有一个“循环”结构。。。它有一个列表部分,最初对其进行评估(通常表示一个值列表)。。。之后是循环体,它对列表中的每个项目执行一次(来自前面提到的列表部分)

请注意,在另一个循环构造中可以有一个循环构造,依此类推

问题是,有时一个列表可能包含数百万行数据,而主体将为此列表中的每一行执行。正文有一个起始索引值,即索引的上限,并递增1

我想做的是,对于单级循环,首先计算列表值并将其存储在数据库中。之后,不要一次性执行主体,而是将其拆分为不同的部分,以便并行处理列表的不同部分

但是,如何为n级循环拆分作业?(即一个循环中的一个循环,以此类推。)


是否有一些推荐的处理方法。。。任何你能给我指点的教程或指南都会对我很有帮助。

假设你创建了3个线程:T1、T2、T3。下面是循环构造,对于eaxmple

for(int i=0; i<100; i++)
{
    for(int j=0; j<100; j++)
    {
        for(int k=0; k<100; k++)
        {
            // do some processing.
        }
    }
}

for(int i=0;i我建议将列表中1个元素的处理逻辑打包成可运行或可调用的,然后将它们传递给执行。这将在不同的工作线程中并行运行任务。当然,这取决于您的机器有多少内核,以及实际的“并行”程度。

如果列表中的每个元素都可以完全独立于所有其他元素进行处理,那么对我来说,这将是一种方法,而不是用线程将列表划分为子列表等等。

根据您的描述,我知道您正在获取xyz网站的源代码,并从中删除数据

您可以使用XPath和RegularExpression尽可能地完成这类任务。使用
JSOUP
这对您有很大帮助

就并行化而言,您可以使用
.select
getElementbyId
getElementByClass
JSOUP
(这是一个开源程序)

for(i=0 ;i< length;i++)
{   

    i am fetching i;
    i am fetching i+1;
    int temp=i+1;
    if(temp>=length)
    {  
        break;
    }
}
for(i=0;i=长度)
{  
打破
}
}

希望这能有所帮助:

这听起来是一个很好的候选人