'Runs normal parley loop for as many examples as this thread can get
ahold of via the semaphore ``queued_items``.'

def run(self):

    shared_agents = create_agents_from_shared(self.agent_shares)
    world = self.world_type(self.opt, shared_agents)
    with world:
        while True:
            self.queued_items.acquire()
            if self.terminate.value:
                break
            world.parley()
            with self.cnt.get_lock():
                self.cnt.value -= 1
                if (self.cnt.value == 0):
                    with self.epochDone:
                        self.epochDone.notify_all()
