다른 웹 페이지를 가져 오는 다중 스레드 응용 프로그램이 있습니다. 이를 위해 스레드 간의 부모 자식 관계를 고안했습니다. 부모는 페이지에서 다른 URL을 가져 와서 새 스레드를 생성합니다. 이 스레드는 페이지가 변경 될 때까지 페이지를 계속 가져옵니다. 메인 스레드가 URL을 저장하는 문자열의 ArrayList를 가지고3 일 후 다중 스레드 응용 프로그램이 중지됩니다.
while(true){
find_new_instances(...);
if we get any new, then
Thread.start(...);
Thread.sleep(120000);
}
너 한테
메인 스레드 주 스레드 조사 메인 페이지에서 변경 2 분마다 (어떤 변화가있을 경우는 새로운 스레드를 생성) 새로운 스레드가 생성되는 각각의 나는 쓰레드가 쓰기를 위해 불변 객체만을 사용해야한다고 들었다. 여기에 변경 목록을 사용하면 문제가 발생합니까? 하위 스레드에서 페이지 가져 오기 및 데이터베이스 삽입과 같은 작업이 수행됩니다.
그러나 응용 프로그램은 메모리 요구 사항을 점차 증가시켜 최종적으로 데드락/굶주림을 고정 상태 또는 OutOfMemory로 만듭니다. 스레드 수가 너무 큽니다. 나는 무엇이든을 시험해 보는 것에 손실이다. 유사한 문제가 발생했다면 친절하게 제안하십시오.
스레드 수는 얼마나됩니까? 이 루프는 아주 짧은 시간에 많은 스레드를 생성하고 각각의 스레드를 아주 오랫동안 잠자기 상태로 만듭니다. 나에게별로 의미가 없다 ... – Random
@Random : 스레드 수가 약 50 개입니다. (다른 스레드가 생성되어 소멸됩니다) – Sumit
@nos : 스레드간에 데이터 공유가 이루어지지 않고 상위/마스터 스레드 만 실행중인 스레드의 수를 유지합니다. – Sumit