code: def fetchAllUsersFromThreads(self, threads):
          
          users = []
          users_to_fetch = []  # It's more efficient to fetch all users in one request
          for thread in threads:
              if thread.type == ThreadType.USER:
                  if thread.uid not in [user.uid for user in users]:
                      users.append(thread)
              elif thread.type == ThreadType.GROUP:
                  for user_id in thread.participants:
                      if (
                          user_id not in [user.uid for user in users]
                          and user_id not in users_to_fetch
                      ):
                          users_to_fetch.append(user_id)
          for user_id, user in self.fetchUserInfo(*users_to_fetch).items():
              users.append(user)
          return users
docs: Get all users involved in threads.
  
          :param threads: models.Thread: List of threads to check for users
          :return: :class:`models.User` objects
          :rtype: list
          :raises: FBchatException if request failed