当设置java线程的setName时安全吗

当设置java线程的setName时安全吗,java,multithreading,web-services,Java,Multithreading,Web Services,我有一个java web服务应用程序。web方法有一个参数是来自客户端的requestId。我的web服务应用程序必须同时处理多个请求,因此它必须有某种方法来跟踪日志,因为请求的日志是混合的。我计划将线程名称重命名为requestId,并打印出线程名称,以便于跟踪日志。我的问题是:如果重命名线程名称是否安全?是。您可以随时重命名线程名称。如果您使用的是log4j,请检查它们的嵌套诊断上下文(NDC)和映射诊断上下文(MDC)概念,这些概念允许您将类似这样的非结构化数据放入所有日志输出中 其他库可

我有一个java web服务应用程序。web方法有一个参数是来自客户端的requestId。我的web服务应用程序必须同时处理多个请求,因此它必须有某种方法来跟踪日志,因为请求的日志是混合的。我计划将线程名称重命名为requestId,并打印出线程名称,以便于跟踪日志。我的问题是:如果重命名线程名称是否安全?

是。您可以随时重命名线程名称。

如果您使用的是
log4j
,请检查它们的嵌套诊断上下文(NDC)和映射诊断上下文(MDC)概念,这些概念允许您将类似这样的非结构化数据放入所有日志输出中


其他库可能也有类似的概念。

它是安全的,但有点愚蠢。如果有多个线程正在处理该请求呢?如果一个线程正在快速连续地为大量请求中的每一个做一点工作,该怎么办?以这种方式登录会将您锁定为“每个请求线程”设计。