class_docstr: Internal multi-worker iterator for DataLoader.
code: def __init__(
      self,
      worker_pool,
      file_sampler,
      dataset_fn,
      batch_sampler_fn,
      worker_fn=_dataset_worker_fn,
      prefetch=0,
      dataset=None,
      circle_length=1,
      cached=False,
      num_max_cached=0,
  ):
      if cached:
          assert (
              num_max_cached > 0
          ), "When cached is turned on, num_max_cached must be positive."
      self._worker_pool = worker_pool
      self._dataset_fn = dataset_fn
      self._batch_sampler_fn = batch_sampler_fn
      self._worker_fn = worker_fn
      self._prefetch = prefetch
      self._circle_length = circle_length
      self._cached = cached
      self._num_max_cached = num_max_cached
  
      # send and receive index for datasets
      self._rcvd_idx = 0
      self._sent_idx = 0
      self._data_buffer = {}
  
      self._dataset = [dataset[i] for i in iter(file_sampler)]
      self._num_datasets = len(self._dataset)
  
      # construct cached list
      self._cached_dataset = []
  
      # pre-fetch
      for _ in range(self._prefetch):
          self._push_next_dataset()
  
imports: import io
  import os
  import gc
  import glob
  import pickle
  import warnings
  import multiprocessing
  from functools import partial
  import numpy
  from mxnet import context, npx
  from mxnet.gluon.data import ArrayDataset, SimpleDataset
  from mxnet.gluon.data.dataloader import ForkingPickler, _as_in_context, default_mp_batchify_fn, default_batchify_fn
label_desc: Use image node_id 1 to create a new _MultiDatasetWorkerIter object  with example: obj = _MultiDatasetWorkerIter(worker_pool, file_sampler, dataset_fn, batch_sampler_fn, worker_fn, prefetch, dataset, circle_length, cached, num_max_cached)