웹 브라우저에서 오는 연결을 수신하는 다중 스레드 클라이언트 프로그램을 작성 중입니다. 내 문제는 브라우저에서 URL을 입력 할 때보다 많은 스레드가 생성된다는 것입니다. , 단 하나의 스레드를 만들어야하지만 내 경우에는 여러 스레드가 만들어집니다.요청한 것보다 많은 스레드 만들기
답변
표시된 코드는 들어오는 연결마다 하나의 스레드를 생성합니다. 더 이상은 없어.
기대하는 것보다 더 많은 스레드를 얻는다면 가장 확실한 설명은 웹 브라우저가 예상보다 많은 서버 연결을 여는 것입니다. 예를 들어 브라우저는 "사이트"에 대해 'favico'를 가져 오거나 GET을 시도하기 전에 HEAD를 보내려고 시도 할 수 있습니다.
또 다른 가능성은 사용자가보고있는 여분의 스레드가 JVM에 의해 생성 된 데몬 스레드라는 것입니다. 예 : 가비지 컬렉터 스레드, 파이널 라이저 스레드 등이 있습니다. 아니면 실제로 존재하지 않았을 수도 ... 그리고 당신은 뭔가를 오해하고 있습니다.
다른 점은 일반 TCP/IP 소켓을 사용하여 HTTP 서비스를 구현하는 것은 잘못된 아이디어라는 것입니다. HTTP를 제대로 구현하는 데는 많은 작업이 필요하며, 약간의 차이나 잘못한 결과가 발생하여 다른 브라우저와 잘 상호 운용되지 않는 서비스가 발생할 수 있습니다. 기존 HTTP "스택"을 사용하는 것이 좋습니다. 예 : 기존 웹 응용 프로그램 서버/프레임 워크 또는 Apache HttpComponents 스택 일 수 있습니다.
예를 들어 브라우저에 URL을 입력하면 하나의 스레드 만 만들어야하지만 제 경우에는 여러 스레드가 생성됩니다.
브라우저가 하나의 연결을 생성한다고 가정 할 경우에만. 당신은 그 사실을 모릅니다. 그리고 그 증거는 당신에게 불리합니다. URL에 의해 반환 된 데이터에 이미지에 대한 상대 URL이 포함되어있는 경우 브라우저는 추가 연결을 열어 동시에 검색합니다.
- 1. slurm이 요청한 것보다 많은 작업을 시작한 것 같습니다
- 2. 왜 내가 doctrine이 요청한 것보다 더 많은 필드를 반환합니까?
- 3. redirect_to가 요청한 것보다 다른 동작을합니다.
- 4. newFixedThreadPool이 필요한 것보다 많은 작업을 생성합니다.
- 5. Filepath로 사용할 수있는 것보다 많은 문자열 만들기 - 이클립스/Android
- 6. 요소가 할당 된 것보다 더 많은 공간을 차지하지 못하게 만들기
- 7. 자바 많은 스레드 많은 스레드 관계
- 8. 필요한 것보다 많은 속성 처리
- 9. Apachebench가 요청하는 것보다 많은 요청을합니다.
- 10. DHCP 서버가 DHCP 클라이언트가 요청한 것보다 많은 임대 시간을 제공 할 수 있습니까?
- 11. 스레드 만들기
- 12. TableView에 지정된 것보다 많은 열이 있습니다.
- 13. 많은 LIKE 쿼리를 사용하는 것보다 효율적입니다. mysql
- 14. JPA 원하는 것보다 더 많은 인스턴스
- 15. Bash : 배열에 지정된 것보다 많은 요소가 있습니다.
- 16. 스파크가 지정된 것보다 많은 실행자를 시작 함
- 17. 목록보기가 필요한 것보다 많은 공간을 차지합니다
- 18. 왜이 정규식은 필요한 것보다 많은 그룹을 반환합니까?
- 19. AjaxFileupload 허용되는 것보다 많은 파일을 업로드하십시오.
- 20. AND 결과가 더 많은 것보다 나타나야합니다.
- 21. 서브 쿼리가 필요한 것보다 많은 행을 처리합니다.
- 22. 사용할 수있는 것보다 많은 메모리 사용
- 23. calloc이 사용 가능한 것보다 많은 메모리를 초기화합니다.
- 24. 절차 전송하는 것보다 더 많은 필드 지정
- 25. 설정에서 지정된 것보다 많은 연결을 생성하는 c3p0
- 26. SAP 트랜잭션이 필요한 것보다 많은 열을 반환합니다.
- 27. 얼마나 많은 스레드 루프
- 28. 스레드 많은 Clojure
- 29. 안드로이드에서 작업자 스레드 내부에서 스레드 만들기
- 30. AppDomain에서 스레드 만들기 방지
컬렉션 당 여러 스레드가 만들어 졌다는 것을 어떻게 알 수 있습니까? JVM에서 "무료"로 얻는 백그라운드 스레드를 모두 보지 못하셨습니까? – Gray
thread id가 – user1850254
인데, thread-id가 1 이상입니까? thread-id는 얼마나 많은 스레드가 있는지를 어떻게 알 수 있습니까? – Gray