This library creates threads with either no name, or in some cases the same name repeatedly. It's very useful for threads to have unique names for debugging purposes, and this is one of the inspections YourKit provides for recorded snapshots.
Currently no name is provided for the thread created at Http2Connection.java#L483 and the same name is used between multiple threads Util.java#L203.
A pattern I've seen elsewhere for generating unique thread names is a name pattern (e.g. okhttp-pool-%d which is then templated with an incrementing integer as new threads are created. An example of this pattern is in Guava at ThreadFactoryBuilder.java
Screenshot from YourKit:

+1 want to submit a PR?
The thread in Http2Connection does have name that gets set when the thread executes.
https://github.com/square/okhttp/blob/parent-3.9.1/okhttp/src/main/java/okhttp3/internal/http2/Http2Connection.java#L557
Looks like YourKit isn鈥檛 tracking the name update.
As for the ConnectionPool, you usually don鈥檛 want multiple connection pools in your application. So the warning is appropriate. Probably the best way to do this is to follow the advice here:
https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html
That said, giving them numbers might help with tracing.
For the ReaderRunnable it鈥檒l be simpler to just use a regular Runnable (not a NamedRunnable) and set the thread name at construction.
Is there any chance to get it? Thanks.
I think this is supported now.
Most helpful comment
+1 want to submit a PR?