code: def result(self):
          
          # Send None to all threads to cleanly stop them
          for _ in range(self.num_threads):
              self.tasks_queue.put(None)
          # Wait for completion of all the tasks in the queue
          self.tasks_queue.join()
          # Check if one of the thread raised an exception, if yes
          # raise it here in the function
          if not self.exceptions_queue.empty():
              raise self.exceptions_queue.get()
          return self.results_queue
docs: Stop threads and return the result of all called tasks