ImageIO.read를 사용하여 다중 스레드 환경의 입력 스트림에서 이미지를 읽으려고합니다. 다음은 내가 BufferedImage의 (bufImage)로 변환 한 후, 아파치 HttpClient를를 사용하여 스트림으로 이미지를 읽는 HttpConnection에 제작하고, 기본적으로ImageIO.read는 다중 스레드 실행시 예외를 throw합니다.
entity = httpResponse.getEntity(); //httpResponse is apache hc response object
bufImage = ImageIO.read(entity.getContent()); //reading image
코드입니다.
이 코드는 정상적으로 실행되면 정상적으로 작동합니다. 내가 여러 스레드로 실행하면, 나는 다음과 같은 예외를 얻고,
Exception in thread "Thread-3258" java.lang.NoClassDefFoundError: Could not initialize class sun.java2d.Disposer
at javax.imageio.stream.FileCacheImageInputStream.<init>(Unknown Source)
at com.sun.imageio.spi.InputStreamImageInputStreamSpi.createInputStreamInstance(Unknown Source)
at javax.imageio.ImageIO.createImageInputStream(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at com.example.ImgDownload.run(ImgDownload.java:60)
at java.lang.Thread.run(Unknown Source)
ImgDownload.java:60
내가 ImageIO에서 앞서 언급 사용하여 읽기 라인입니다. 어떻게 해결할 수 있습니까? 즉,이 다중 스레드 환경에서 실행 -감사합니다, 아비
동일한 내용을 사용하고 있습니다. 환경도 동일합니다. 스레드로 실행하려고했습니다 ... 작동하지 않아 일반적인 일반 코드로 변경되었습니다. – Abhishek