def METHOD_NAME(self, commands: list[Command]) -> list[Command]:
    """Run commands with multiple processes.
    Workers are started to read from pending queue.
    Exit when the number of results is equal to the number
    of commands needing to be run.
    :param commands: All commands to be run
    :returns: The results from running all commands
    """
    if self._completed_queue is None:
        self._completed_queue = multiprocessing.Manager().Queue()
    if self._pending_queue is None:
        self._pending_queue = multiprocessing.Manager().Queue()
    self.start_workers(commands)
    results: list[Command] = []
    while len(results) != len(commands):
        results.append(self._completed_queue.get())
    return results