'Args:
ds (DataFlow): the dataflow to map
nr_thread (int): number of threads to use
map_func (callable): datapoint -> datapoint | None
buffer_size (int): number of datapoints in the buffer
strict (bool): use "strict mode", see notes above.'

def __init__(self, ds, nr_thread, map_func, buffer_size=200, strict=False):

    super(ThreadedMapData, self).__init__(ds)
    self._iter_ds = ds
    self._strict = strict
    self.nr_thread = nr_thread
    self.buffer_size = buffer_size
    self.map_func = map_func
    self._threads = []
