diff --git a/src/main/java/azgracompress/io/loader/IPlaneLoader.java b/src/main/java/azgracompress/io/loader/IPlaneLoader.java
index 0ed068f71e40ddc1e97c9676c6b95ad501f873cd..7e20bac003cf6680bbe604457a6ca22a1cfebe2a 100644
--- a/src/main/java/azgracompress/io/loader/IPlaneLoader.java
+++ b/src/main/java/azgracompress/io/loader/IPlaneLoader.java
@@ -10,6 +10,16 @@ import java.io.IOException;
  * Interface for dataset loaders.
  */
 public interface IPlaneLoader {
+
+    /**
+     * Check whether current loader supports threading.
+     *
+     * @return True if current loader can use more threads for loading.
+     */
+    default boolean supportParallelLoading() {
+        return false;
+    }
+
     /**
      * Get dimensions of the image, for which the loader was created.
      *
diff --git a/src/main/java/azgracompress/io/loader/ImageJBufferLoader.java b/src/main/java/azgracompress/io/loader/ImageJBufferLoader.java
index 154415119489b3c97a6f3507e1e1e5f81a1d40f7..c43bcfcdf80d35046e8ed3422190767d5280bb86 100644
--- a/src/main/java/azgracompress/io/loader/ImageJBufferLoader.java
+++ b/src/main/java/azgracompress/io/loader/ImageJBufferLoader.java
@@ -20,6 +20,11 @@ public final class ImageJBufferLoader extends BasicLoader implements IPlaneLoade
         assert (this.bufferInputData.getPixelType() == InputData.PixelType.Gray16);
     }
 
+    @Override
+    public boolean supportParallelLoading() {
+        return true;
+    }
+
     private void copyShortArrayIntoBuffer(short[] srcArray, int[] destBuffer, int destOffset, int copyLen) {
         for (int i = 0; i < copyLen; i++) {
             destBuffer[destOffset + i] = TypeConverter.shortToInt(srcArray[i]);