다른 Java 클래스로 작성된 두 개의 스레드가 포함 된 Java 응용 프로그램이 하나 있습니다. 하나의 스레드는 이미지 파일을 쓰는 데 사용되고 다른 하나는 같은 파일을 동시에 읽는 것입니다. 두 스레드가 동시에 실행 중입니다. java.lang.ArrayIndexOutOfBoundsException : -1
그러나 스레드가 차단되고 다음과 같은 예외가 표시됩니다 몇 가지 시도 후
: 응용 프로그램 자체를 종료이 예외 후java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:371)
at java.util.ArrayList.get(ArrayList.java:384)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly(JPEGImageReader.java:373)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage(JPEGImageReader.java:476)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader(JPEGImageReader.java:597)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:1054)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:1034)
at javax.imageio.ImageIO.read(ImageIO.java:1448)
at javax.imageio.ImageIO.read(ImageIO.java:1308)
at java.lang.Thread.run(Thread.java:722)
. 이 문제를 해결하는 방법?
어떻게 두 개의 서로 다른 Java 클래스에서이 두 스레드를 동기화 할 수 있습니까?
코드를 알려주시겠습니까? –
그 시간에 'elementData'의 크기는 얼마입니까? – gnanz
큰 응용 프로그램을 디버그하므로 공유 할 수 없습니다 – rachana