0
スレッドのプールを配列に作成しました。この配列に含まれている各オブジェクトにスレッドを生成させます。これは基本的に動きます。各オブジェクトは異なる方向に移動する必要がありますが、すべて同じ方向に移動します。 私は今のところこれを得た:オブジェクトの配列を管理して、それぞれにスレッドを生成させる方法は?
for (int i=0; i<network.mobiles.size(); i++) {
final int j = i ;
threadPool.submit(new Runnable() {
public void run() {
int value = 10 ;
for (int z=0; z<value; z++){
value++;
int x = mobnod[j].getLocationOnScreen().x;
int y = mobnod[j].getLocationOnScreen().y;
double r = Math.random();
if (r < 0.25) mobnod[j].getLocationOnScreen().x--;
else if (r < 0.50) mobnod[j].getLocationOnScreen().x++;
else if (r < 0.75) mobnod[j].getLocationOnScreen().y--;
else if (r < 1.00) mobnod[j].getLocationOnScreen().y++;
mobnod[j].setLocation(x, y);
network.mobiles.get(j).findClosestAP(network.nodes);
network.setConnections();
try {
threadPool.awaitTermination(1000, TimeUnit.MILLISECONDS);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});
}
// once you've submitted your last job to the service it should be shut down
threadPool.shutdown();
// wait for the threads to finish if necessary
}
はあなたが私にしてください助けてもらえますか?
完全なプログラムを投稿して、実行することができますか?また、あなたのforループは無限ループのように思えます、それは意図されていますか? – faizan