Использовать потоки для обработки файловых чанков

У меня есть arraylist, который состоит из 5000 IP-адресов. Для каждого IP-адреса я хочу выполнить запрос SNMPGet и команду FTPDownload. Я хочу реализовать это таким образом, чтобы одновременно для двух первых IP-адресов одновременно работали 2 разных потока. После выполнения этих IP-адресов следующие 2 IP-адреса будут выполняться в этих потоках. Может кто-нибудь помочь, как это сделать?

Здесь connection - это класс, который расширяет поток, а выполняемая работа записывается в его метод run (). Пожалуйста помоги.

Connection newConnection =new Connection(0);
Connection newConnection1 =new Connection(1);

for(int i = 0; i < NE_list.getRowCount(); i=i+2)
{
if(NE_list.getValueAt(i, 0).toString().equals("true")) //Some condition here for the IP Address
{

            newConnection.i=i;
            newConnection1.i=i+1;
            newConnection.runprogram();
            newConnection1.runprogram();
 }


    } 

class Connection extends Thread{
int  i;
Connection(int val){
  i=val;
}
void runprogram(){
start();
}
public void run(){
//SNMP and FTP Code here for IP Address in index i of NE_list
}
}

Ответы на вопрос(2)

Ваш ответ на вопрос