如何指定ThreadFactory
来更改调用onWebSocketConnect
的回调(onWebSocketText
和WebSocketListener
)的线程名称?
线程名称是我在创建Server对象之前已知的固定名称。
我尝试了以下不幸的工作。
jettyServer = new Server(new NamedQueuedThreadPool("MyThreadNamePrefix");
import org.eclipse.jetty.util.thread.QueuedThreadPool;
class NamedQueuedThreadPool extends QueuedThreadPool {
private final String threadName;
public NamedQueuedThreadPool(final String threadName) {
this.threadName = threadName;
}
@Override
protected Thread newThread(final Runnable runnable) {
Thread t = super.newThread(runnable);
t.setName(threadName);
return t;
}
}
我仍然看到线程名称如:qtp1692017180-191
(我猜这代表排队的线程池)
我正在使用jetty-server-9.2.9
修改 对我而言,它并不关心哪个线程执行特定的客户端请求,我只希望所有线程都具有相同的名称,我可以在某处选择。
例如,我将使用" Adapter / SomeInstanceId"作为所有线程的线程名称的前缀,这将被写入日志,并为我提供了一种方便的过滤/分组方法。