소켓에서 수신 대기중인 서버 스레드가 있습니다. 다음과 같은 진술 :accept()를 호출하는 스레드는 어떻게됩니까?
Socket client = serverSocket.accept();
이 accept 함수를 실제로 호출하는 스레드는 어떻게됩니까? javadoc은 "이 소켓에 연결을 기다리고 받아들입니다. 연결이 완료 될 때까지 메소드가 멈 춥니 다."라고 말합니다. "블록"은 인터럽트 또는 다른 요청을받을 때까지 busy busy 또는 sleep/in sleep 상태를 의미합니까? 또한,이 동작을 읽기와 같은 소켓상의 모든 블로킹 함수 호출에 대해 일반화 할 수 있습니까?
블록은 블록을 의미합니다. 이 스레드는'accept()'가 반환 될 때까지 계속되지 않습니다. (기본 시스템 호출 자체가 차단되고 있습니다. 정확히 어떻게 * 작동하는지는 Java의 범위 밖에 있으므로, "시스템"관점에서 보는 것이 더 적합 할 수 있습니다 ...) –
오케이. 감사! – user1355348