>

하나의 JVM에서 여러 프로세스를 실행할 수 있습니까? 그리고 각 프로세스는 자체 메모리 할당량을해야합니까?

내 목표는 새로운 http 요청이 들어올 때 새로운 프로세스를 시작하고 프로세스에 별도의 메모리를 할당하여 각 사용자 요청에 고유 한 메모리 할당량이 있고, 메모리 할당량이 가득 찬 경우 다른 사용자 요청을 방해하지 않는 것입니다. .

어떻게 달성 할 수 있습니까?

이것이 가상인지 확실하지 않습니다.


  • 답변 # 1

    짧은 대답 : 실제로는 아닙니다.

    Java 플랫폼 제공하면 두 가지 옵션 :

    <올> 쓰레드. 그리고 이것은 많은 경우에 일반적인 대답입니다. 새로 들어오는 각 요청은 별도의 스레드에서 처리됩니다 (병렬에서 생성되어 병렬로 작성/사용되는 전체 스레드 인스턴스 수를 제한하기 위해 풀에서 나올 수 있음). 그러나 물론 : 스레드는 동일한 프로세스에 존재합니다. 스레드가 수행하는 작업에 의해 "관련된"메모리 소비를 제어하는 ​​것과 같은 것은 없습니다.

    자식 프로세스.실제프로세스를 생성하고이를 사용하여 실행하려는 모든 것을 실행할 수 있습니다. 그러나 물론 :외부실제 처리 프로세스가 있습니다.

    본질적으로 정답은 : 아니요,이 아이디어를 Java에 적용 할 수 없습니다. "더 많은"Java 솔루션은애플리케이션 서버와 같은 개념 (예 : Tomcat 또는 WebSphere)을 조사하는 것입니다.

    또는 수동으로 일을 주장하는 경우;자신 만의 "로드 밸런서"를 구축 할 수 있습니다. 당신이 여기서하나고객을 상대 JVM을;이는 단순히 "전달"많은 다른 JVM에의 한 요청;"다른"JVM은 독립적으로 작동합니다. 각각 자체 프로세스에서 실행됩니다. 물론 CPU/메모리/... 사용량에 대해 "마이크로 관리"할 수 있습니다.

  • 이전 sql server - java의 LocalDate 유형에 맵핑 된 DATE 열에 널 또는 빈 값을 삽입하는 중 오류가 발생했습니다
  • 다음 JSON 데이터 유형 및 Java 모델 사용없이 편안한 서비스를위한 스와 거 주석