我有一个 Java 应用程序,其中包含在不同 Java 类中创建的两个线程。一个线程用于写入图像文件,另一个线程同时读取同一个文件。两个线程同时运行。
但经过几次尝试后,线程被阻塞并显示以下异常:
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 类中同步这两个线程?