docstr: Test workaround for https://github.com/rasterio/rasterio/issues/2847.
docstr_tok: ["Test","workaround","for","https",":","\/\/github.com\/rasterio\/rasterio\/issues\/2847","."]
code: def test_read_gtiff_band_interleave_multithread(self):
      """Test workaround for https://github.com/rasterio/rasterio/issues/2847."""
  
      with rasterio.Env(GDAL_NUM_THREADS="2"), rasterio.open(
          "tests/data/rgb_deflate.tif"
      ) as s:
          s.read(1)
          a = s.read(2)
          self.assertEqual(a.sum(), 25282412)
  
      with rasterio.Env(GDAL_NUM_THREADS="2"), rasterio.open(
          "tests/data/rgb_deflate.tif"
      ) as s:
          a = s.read(indexes=[3, 2, 1])
          self.assertEqual(a[0].sum(), 27325233)
          self.assertEqual(a[1].sum(), 25282412)
          self.assertEqual(a[2].sum(), 17008452)
  
imports: from hashlib import md5
  import unittest
  import numpy
  import pytest
  import rasterio
  from rasterio.errors import DatasetIOShapeError
label_desc: Use image node_id 15 for calling the ReaderContextTest obj's underlying member method code with example usage: obj.test_read_gtiff_band_interleave_multithread() without return types