def METHOD_NAME(cls, fh, *, payload_nbytes=1 << 22, sample_shape=(1,), bps=4,
             complex_data=False):
    """Read payloads from several threads.
    Parameters
    ----------
    fh : filehandle or tuple of tuple of filehandle
        Handles to the sets of files from which data are read.  The outer
        tuple holds distinct threads, while the inner ones holds parts of
        those threads.  Typically, these are the two polarisations and the
        two parts of each in which phased baseband data are stored.
    payload_nbytes : int, optional
        Number of bytes to read from each part.  Default: 2**22 (4 MB)
    sample_shape : tuple
        Shape of the samples (e.g., (nchan,) or (nthread, nchan)).
        Default: (1,).
    bps : int, optional
        Bits per elementary sample.  Default: 4.
    complex_data : bool, optional
        Whether data are complex.  Default: `False`.
    """
    if hasattr(fh, 'read'):
        return super().METHOD_NAME(fh, payload_nbytes=payload_nbytes,
                                sample_shape=sample_shape, bps=bps,
                                complex_data=complex_data)
    payloads = [[super(GSBPayload,
                       cls).METHOD_NAME(fh1, payload_nbytes=payload_nbytes,
                                     sample_shape=sample_shape[1:],
                                     bps=bps, complex_data=complex_data)
                 for fh1 in fh_set] for fh_set in fh]
    sample_nbytes, extra = divmod(payloads[0][0]._bpfs, 8)
    assert extra == 0, 'Full samples do not fit in integer number of bytes'
    words = np.empty((len(payloads[0]),
                      payloads[0][0].words.size // sample_nbytes,
                      sample_shape[0],
                      sample_nbytes), dtype=cls._dtype_word)
    for payload_set, thread in zip(payloads, words.transpose(2, 0, 1, 3)):
        for payload, part in zip(payload_set, thread):
            part[:] = payload.words.reshape(-1, sample_nbytes)
    return cls(words.ravel(), sample_shape=sample_shape, bps=bps,
               complex_data=complex_data)