def feed_batch_multithreaded(self, batch: List[VespaDocument], schema: str,
                                 max_threads: int = 10) -> FeedBatchResponse:
        """
        Feed a batch of documents to Vespa concurrently using a thread pool.

        This method is for debugging and experimental purposes only. Use `feed_batch` instead to feed documents
        asynchronously with one thread.

        Args:
            batch: List of documents to feed
            schema: Schema to feed to
            max_threads: Maximum number of threads to use

        Returns:
            List of FeedResponse objects
        """
        with httpx.Client(
                limits=httpx.Limits(max_keepalive_connections=max_threads, max_connections=max_threads)) as sync_client:
            with ThreadPoolExecutor(max_workers=max_threads) as executor:
                responses = list(executor.map(
                    lambda document: self._feed_document_sync(sync_client, document, schema, timeout=60), batch
                ))

        errors = False
        for response in responses:
            if response.status != 200:
                errors = True

        return FeedBatchResponse(responses=responses, errors=errors)

        Feed a batch of documents to Vespa concurrently using a thread pool.

        This method is for debugging and experimental purposes only. Use `feed_batch` instead to feed documents
        asynchronously with one thread.

        Args:
            batch: List of documents to feed
            schema: Schema to feed to
            max_threads: Maximum number of threads to use

        Returns:
            List of FeedResponse objects
        
src/marqo/vespa/vespa_client.py