class_docstr: Multithreaded non-blocking `Resolver` implementation.
  
  Requires the `concurrent.futures` package to be installed
  (available in the standard library since Python 3.2,
  installable with ``pip install futures`` in older versions).
  
  The thread pool size can be configured with::
  
      Resolver.configure('tornado.netutil.ThreadedResolver',
                         num_threads=10)
  
  .. versionchanged:: 3.1
     All ``ThreadedResolvers`` share a single thread pool, whose
     size is set by the first one to be created.
  
  .. deprecated:: 5.0
     The default `Resolver` now uses `.IOLoop.run_in_executor`; use that instead
     of this class.
class_docstr_tok: ["Multithreaded","non-blocking","`","Resolver","`","implementation",".","Requires","the","`","concurrent.futures","`","package","to","be","installed","(","available","in","the","standard","library","since","Python","3.2",",","installable","with","``","pip","install","futures","``","in","older","versions",")",".","The","thread","pool","size","can","be","configured","with",":",":","Resolver.configure","(","'tornado.netutil.ThreadedResolver","'",",","num_threads=10",")","..","versionchanged",":",":","3.1","All","``","ThreadedResolvers","``","share","a","single","thread","pool",",","whose","size","is","set","by","the","first","one","to","be","created",".","..","deprecated",":",":","5.0","The","default","`","Resolver","`","now","uses","`",".IOLoop.run_in_executor","`",";","use","that","instead","of","this","class","."]
code: def initialize(self, num_threads: int = 10) -> None:  # type: ignore
      threadpool = ThreadedResolver._create_threadpool(num_threads)
      super().initialize(executor=threadpool, close_executor=False)
  
imports: import asyncio
  import concurrent.futures
  import errno
  import os
  import sys
  import socket
  import ssl
  import stat
  from tornado.concurrent import dummy_executor, run_on_executor
  from tornado.ioloop import IOLoop
  from tornado.util import Configurable, errno_from_exception
  from typing import List, Callable, Any, Type, Dict, Union, Tuple, Awaitable, Optional
label_desc: Use image node_id 1 for calling the ThreadedResolver obj's underlying member method code with example usage: obj.initialize(num_threads) without return types