## Uses of Class
net.i2p.util.I2PThread

- Packages that use I2PThread
  Package | Description
  --- | ---
  net.i2p.addressbook | Address book application for fetching and maintaining I2P host databases from subscription sources.
  net.i2p.i2ptunnel | Implementation of preconfigured tunnels for both clients and servers, with a comprehensive UI for tunnel management and configuration.
  net.i2p.router | The I2P router application handles I2P network communication.
  net.i2p.router.crypto.ratchet | Implementation of ECIES-X25519-AEAD-Ratchet cryptographic protocol (I2P proposal 144), providing forward secrecy and enhanced security for I2P transport communications.
  net.i2p.router.transport.crypto | Cryptographic operations for I2P transport protocols, including key exchange algorithms, session key management, and transport-layer encryption.
  net.i2p.router.update | Classes to implement the router update process for checking and applying I2P router updates from the update manager.
  net.i2p.util | Core utility classes and helper functions used throughout the I2P router and applications.

- - ### Uses of I2PThread in net.i2p.addressbook

    Subclasses of I2PThread in net.i2p.addressbook
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DaemonThread` A thread that waits five minutes, then runs the addressbook daemon.

  - ### Uses of I2PThread in net.i2p.i2ptunnel

    Subclasses of I2PThread in net.i2p.i2ptunnel
    Modifier and Type | Class and Description
    --- | ---
    `class` | `I2PTunnelHTTPClientRunner` HTTP client runner that filters response headers to enforce the "Connection: close" header, ensuring browsers treat the connection as non-persistent, even if the server doesn't comply.
    `class` | `I2PTunnelOutproxyRunner` I2PTunnelOutproxyRunner forwards data bidirectionally between two connected sockets: one representing an external socket connection and the other an I2P socket connection.
    `class` | `I2PTunnelRunner` Thread that forwards traffic between an I2PSocket and a TCP Socket.
    `(package private) class` | `InternalSocketRunner` Listens for in-JVM connections on internal socket.

  - ### Uses of I2PThread in net.i2p.router

    Subclasses of I2PThread in net.i2p.router
    Modifier and Type | Class and Description
    --- | ---
    `(package private) class` | `JobQueueRunner` Worker thread that executes jobs from the router job queue.

  - ### Uses of I2PThread in net.i2p.router.crypto.ratchet

    Subclasses of I2PThread in net.i2p.router.crypto.ratchet
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Elg2KeyFactory` Threaded factory for pre-calculating Elligator2-encoded X25519 key pairs to prevent Diffie-Hellman computation bottlenecks in critical paths Try to keep DH pairs at the ready.

  - ### Uses of I2PThread in net.i2p.router.transport.crypto

    Subclasses of I2PThread in net.i2p.router.transport.crypto
    Modifier and Type | Class and Description
    --- | ---
    `class` | `X25519KeyFactory` Try to keep DH pairs at the ready.

  - ### Uses of I2PThread in net.i2p.router.update

    Subclasses of I2PThread in net.i2p.router.update
    Modifier and Type | Class and Description
    --- | ---
    `(package private) class` | `DevSU3UpdateChecker` Check for an updated su3 version.
    `(package private) class` | `DevSU3UpdateRunner` Eepget the .su3 file to the temp dir, then notify.
    `(package private) class` | `NewsFetcher` Task to fetch updates to the news.xml, and to keep track of whether that has an announcement for a new version.
    `(package private) class` | `PluginUpdateChecker` Check for an updated version of a plugin.
    `(package private) class` | `PluginUpdateRunner` Check for an updated version of a plugin.
    `(package private) class` | `UnsignedUpdateChecker` Does a simple EepHead to get the last-modified header.
    `(package private) class` | `UnsignedUpdateRunner` Eepget the .zip file to the temp dir, then notify.r Moved from UnsignedUpdateHandler and turned into an UpdateTask.
    `(package private) class` | `UpdateRunner` The downloader for router signed updates, and the base class for all the other Checkers and Runners.

  - ### Uses of I2PThread in net.i2p.util

    Subclasses of I2PThread in net.i2p.util
    Modifier and Type | Class and Description
    --- | ---
    `class` | `I2PAppThread` Like `I2PThread` but with per-thread OOM listeners, rather than a static router-wide listener list, so that an OOM in an app won't call the router listener to shutdown the whole router.