Jmeter로 응용 프로그램을 테스트하려고합니다. 응용 프로그램은 다중 스레드를 작성하는 독점 라이브러리를 사용합니다. JMeter에서는 응용 프로그램에서 생성 될 수있는 다른 모든 스레드를 기다리지 않는 AbstractJavaSamplerClient를 만들었습니다. 대신 자체 기본 메서드를 실행하고 백그라운드에서 실행중인 다른 스레드를 닫은 채로 닫습니다. 응용 프로그램의 서버에 연결하고 있기 때문에 서버 로그를 통해 여전히 연결되어 있음을 볼 수 있습니다. 독점 라이브러리를 통해 인스턴스화 될 때 다른 스레드에 대한 참조가 없기 때문에 wait() 또는 join()의 일반적인 솔루션을 사용할 수 없습니다. 스레드 (아무도 내가 너무 참조가)?Java 종료하기 전에 모든 스레드가 대기합니다.
1
A
답변
3
특별히 제작 된 스레드 그룹의 별도 스레드에 라이브러리의 모든 작업을 넣으십시오. 라이브러리는 해당 스레드 그룹과 그 자손에 새 스레드를 작성합니다. 해당 그룹의 모든 스레드를 group.enumerate(new Thread[group.activeCount()*2],true)
으로 재귀 적으로 나열하십시오. 그런 다음 모두 참여할 수 있습니다.
1
당신은 당신에게 실행중인 모든 스레드의 세트를 줄 것이다
Thread.getAllStackTraces().keySet();
으로 시작할 수 있습니다. 여기에는 과에 관심이있는 사용자와 JVM의 내부 스레드를 포함한 모든 다른 스레드가 포함됩니다.
관심있는 대상을 필터링하여 이름별로 필터링 할 수 있으려면 join()
수 있습니다.
+0
해답을 제공해 주셔서 감사합니다. 그러나, 나는 Alexei의 해결책을 계속했다. –
+0
예, 깨끗한 솔루션입니다. –
관련 문제
- 1. 다른 스레드가 실행될 때까지 스레드가 대기합니다.
- 2. eclipse beakpoint : Java 메소드를 종료하기 전에 중지
- 3. 소켓 프로그래밍 : 서버를 종료하기 전에 모든 클라이언트에 알립니다.
- 4. Win32 응용 프로그램을 종료하기 전에 모든 스레드를 명시 적으로 중지해야합니까?
- 5. 종료하기 전에 소켓 닫기
- 6. 페이지의 iFrame은 iFrame을 표시하기 전에 모든 iFrame 콘텐츠가로드되기 전에 대기합니다.
- 7. 종료하기 전에 파일 설명자를 닫아야합니까?
- 8. emacs를 종료하기 전에 함수를 실행하십시오.
- 9. 종료하기 전에 확인 대화 상자
- 10. 프로그램을 종료하기 전에 메시지 추가
- 11. RMI 서버를 종료하기 전에 작업을 실행
- 12. Java 응용 프로그램을 종료하기 전에 코드가 실행되도록하는 방법
- 13. 실행하기 전에 모든 스레드가 시작될 때까지 기다리십시오.
- 14. 모든 데이터를로드하기 전에 스레드가 종료되는 이유는 무엇입니까?
- 15. 미래는 FixedThreadPool이 모든 스레드가 끝나기 전에 되돌아갑니다.
- 16. Xcode를 종료하기 전에 모든 작업을 취소 할 수있는 방법이 있습니까?
- 17. 업데이트 전에 모든 AJAX 호출이 완료 될 때까지 페이지가 대기합니다.
- 18. 앱을 종료하기 전에 값을 저장 하시겠습니까?
- 19. 분리 된 NSThread는 응용 프로그램을 종료하기 전에 항상 완료됩니까?
- 20. Java에서 다른 스레드로부터의 입력으로 하나의 스레드가 무한 대기합니다.
- 21. 작업을 종료하기 전에 InvokeRequired를 올바르게 사용하십시오.
- 22. 기본 양식을 종료하기 전에 스레드를 중단하고 결합해야합니까?
- 23. Android 앱을 종료하기 전에 정리를 수행하려면 어떻게해야합니까?
- 24. 호스트를 종료하기 전에 lxc 컨테이너를 종료해야합니까?
- 25. 프로그램을 종료하기 전에 객체가 삭제되지 않았 음
- 26. 이미지 삭제하기 프로그램을 종료하기 전에 저장했습니다.
- 27. 종료하기 전에 몇 가지 코드를 수행하시오.
- 28. Linux에서 프로그램을 종료하기 전에 다시 시작하는 방법
- 29. 메서드를 종료하기 전에 콜백 결과를 기다립니다.
- 30. Node.js TCP 소켓은 폴링하기 전에 대기합니다. (net.createServer)
'activeCount() * 2'가있는 "트릭"은 훌륭하지만 올바른 것이기 때문에 열거 형의 반환 값이 주어진 길이보다 엄격한지를 검사해야합니다. 정확히 똑같은 크기 일 경우 너무 작은 크기의 경우와 완벽하게 맞는 크기의 경우를 구별하십시오.) 그래, 어색한 API를 사용하는 것입니다. – Voo
정말 감사합니다. –