dfarias
Esse código que você postou, sozinho e isolado, não diz muita coisa. Por exemplo, o que faz a Calculadora? E o que significa [i]vetorCalc(m1, 0, 0, 3, 3) ? Por que esse i aí? Quando você diz múltiplas instâncias, são múltiplas instâncias de quem exatamente?
Se entendi o que você quer fazer, é somar as partes de uma matriz usando threads, certo?
Você precisa dividir as coisas. Do jeito que está tentando fazer, está muito confuso.
Exemplo:
[code]
public class Teste{
public static void main(String args[]){
// uma matriz grande, de 100x100,
//que queremos somar em pedaços de 10x10
int[][] matriztoda = new int[100][100];
// uma lista contendo as threads que realizarão a soma
List<Calculadora> somadoras = new ArrayList<Calculadora>();
// note que o for é de 10 em 10,
// porque queremos pedaços de 10 em 10
for(int i = 0; i < 100; i+=10{
for(int j = 0; j < 100; j+=10{
somadoras.add(new Calculadora(criarMatrizAPartirDePedacoOutra(matriztoda, i, i, i+10, j+10)));
}
}
for(Calculadora soma : somadoras{
soma.start(); // o método start inicia uma thread
}
}
public static int[][] criarMatrizAPartirDePedacoOutra(int[][] matriz, int x, int y, int linhas, int colunas){
// esse método a gente já tem e você já sabe como funciona, certo?
}
// esta classe interna faz um calculo qualquer na matriz
class Calculadora extends Thread{
int[][] matrizinternadathread;
public Calculadora(int[][] matriz){
matrizinternadathread = matriz;
}
public void run(){
// aqui você realiza o cálculo que quiser com o pedaço da matriz que você mandou
// pode ser uma soma, multiplicação, divisão, jogar tudo fora, etc
}
}
}[/code]
Nota: o código acima não compila. É um exemplo de como você pode estruturar a coisa toda.
Abraço.