Ant ベースのパスファインディング用に次のクラスを作成しました (恐ろしい考えは知っていますが、それでも)...
public class main implements Runnable{
static int[][] maze;
static int[] targets;
int treadnumber;
public main(int i){
treadnumber=i;
}
public static void main(String[] args){
maze=mazeReader.read();
colony.createscent(maze);
targets =targetReader.read();
//number of running ants
for (int i=0; i<4;i++){
Thread a= new Thread(new main(i));
a.run();
}
System.out.println("test");
System.out.println("and the winner is:");
System.out.println(colony.bestroute);
System.out.println(colony.lengthbest/2);
}
public void run() {
for (int i=0; i<100 ;i++){
System.out.println(treadnumber);
maze =mazeReader.read();
ant a = new ant();
a.loadmaze(maze.clone());
a.start(targets.clone());
}
}
}
効率上の理由から、これはマルチスレッドで実行する必要がありますが、スレッド番号を出力させると、100 個の 0 の後に 100 個の 1 の ext. このコード全体の実行には約 30 秒かかるため、少なくともある程度並列に実行する必要があります。私は何を間違っていますか?