대학 과제를 수행하고 있습니다 (솔직히 말해서). 문제는 4 개의 클라이언트 스레드가 언제든지 실행되어야한다는 것입니다 (n은 uptil입니다). 따라서 모든 스레드가 종료 될 때마다 새 스레드를 생성해야합니다.메인 스레드가 이벤트 대기 중임
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
은 정적이 아닌 메소드이므로 정적 메소드에서 호출 할 수 없습니다.) 도움을주십시오.
멀티 스레딩 계산 계승을하지 않는 한 여러 스레드를 사용하는 것이 하나를 사용하는 것보다 느릴 수 있습니다. –
나는 'n'숫자의 팩토리얼의 합을 계산해야한다 : 1! +2! + .. + n! 각 계승 계산은 (서버에 의해 다른 스레드를 통해) 독립적입니다. 여전히 느린가 ?? 제 교수가 말한 것을 구현하지 못했습니다. : -/ – letsc