실행 프로그램에 스레드를 제출하지 마십시오. 먼저 불리는 유일한 방법은 run()
이므로 Runnable
이 필요하고 Thread
이 필요하지 않기 때문에 낭비 일뿐입니다. 이 문제는 최신 JDK에 해결하는 동안
차, 당신이 Thread
객체를 많이 만들고 그들에 .start()
를 호출하지 않으면 메모리 누수 문제가 발생하는 경우로 사용됩니다. 기본적으로 Thread
개체를 만들면 .start()
이 호출 된 후에 만 다시 확보 할 수있는 메모리가 할당됩니다. 따라서 executor.submit(thread)
을 수행하는 것은 초기 JDK에서 잠재적으로 위험합니다 (JDK6에서만 해결 된 것 같습니다).
executor.submit (thread)가 유효하지 않습니다. executor가 자체 스레드를 사용하여 runnable을 실행하기 때문에 이것은 잘못되었습니다. 유언 집행자를 사용하는 것이 모든 시점 이후입니다. 작업 (호출)과 실행을 분리하려고합니다. 실행 프로그램 (스레드)을 제공하려는 경우에만 Thread
을 사용해야하지만 그렇게해야하는 경우는 거의 없습니다. 일반적으로 Thread
을 다루는 대신 Runnable
을 구현하고 실행 프로그램을 사용하여 실행하는 것이 좋습니다.