私は大学の割り当てをしています(十分に率直です)。問題は、いつでも4つのクライアントスレッドを実行する必要があるということです(番号nを増やす)。そのため、スレッドが終了するたびに、新しいスレッドを生成する必要があります。メインスレッドがイベントを待機するようにする
public static void main(String[] args) throws IOException,InterruptedException
{
/* some declarations.. */
ClientThread client=new ClientThread();
Runnable intr =client;
for(count=1;count<=number;count++)
{
/* If 4 client threads has been spawned, wait until 1 of them exits */
while(Thread.activeCount()<5)
;
new Thread(intr).start();
}
/* Wait until all other threads exits. */
while(Thread.activeCount()!=1)
;
System.out.println("\n The sum of factorials is: "+client.getResult());
}
私のプログラムの目的を打ち負かすため、ビジー待機を取り除きたいと思います。どうすればメインスレッドを作ることができますか?wait
?? (これはwait
が非静的メソッドであり、静的メソッドから呼び出すことはできないことを示しています)助けてください。
複数のスレッドを使用して階乗を計算していない限り、複数のスレッドを使用するのは1つを使用するよりも遅くなる可能性があります。 –
私は 'n'個の階乗の合計を計算しなければなりません:1!+2!+ .. + n!各階乗計算は独立しています(サーバーによって別のスレッドを使用します)。それはまだ遅いですか?私は、私の教授が言ったことを実装することは考えていません。 : -/ – letsc