나는 모든 자바 모양에 광선을 그릴 수있는 2D Raycaster를 작성했다 :왜 스레드 풀을 사용하는 동안 성능이 향상되지 않습니까?
Line2D, Rectangle2D, Ellipse2D, QuadCurve2D 및 CubicCurve2D.
사실 그 뒤에있는 수학은 사실 매우 복잡하고 집중적인데, 특히 쿼드와 큐빅의 경우에는 스레드 풀을 설정합니다. 사용 가능한 코어 수에 따라 고정 된 스레드 수를 가진 ExcecutionService "exec"를 만들었습니다.
그런 다음 각 셰이프를 담당하는 코드 청크를 정적 실행 파일로 변경했습니다.raycaster 메서드에서 실행 파일을 실행 한 다음 exec.shutdown()을 호출합니다. 마지막으로, id는 exec.isTerminated가 true를 반환 할 때까지 종료하지 않는 while 루프를 만듭니다.
이렇게하면 계속하기 전에 모든 스레드가 실행 완료됩니다.
지금까지 온라인에서 보았던 것에서 이것이 인기있는 방법이지만 개선 된 결과는 보이지 않습니다. 악화되지 않으면 항상 동일합니다. 실제로 오버 헤드와 일치하는 대신 효율을 높이는 스레드 풀을 사용하는 적절한 방법이 있습니까?
아마도 당신의 루프는 많은 CPU를 사용하고 있습니다 – necromancer
코드를 게시하십시오! –
컴퓨터에 CPU 코어가 1 개 있고 프로그램이 이미 CPU 전원을 100 % 사용하고 있습니까? –