gpt4 book ai didi

Java, "bind"线程的东西

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:18:51 24 4
gpt4 key购买 nike

我只是想知道一些库如何检测它们在哪个线程中运行并将某些东西“绑定(bind)”到它……例如 log4j 的映射诊断上下文 (MDC) 或 Mozilla Rhino 的 Context.enter()。我该怎么做,以防万一我偶然发现我需要这个的情况。 ;-)

祝你有美好的一天!

最佳答案

您可以使用 ThreadLocal 获得每个线程的信息变量。我对 Rhino 或 log4j 的细节一无所知,但我想他们就是这样做的。

Javadoc 中为每个线程分配不同序列号的示例。

 public class SerialNum {
// The next serial number to be assigned
private static int nextSerialNum = 0;

private static ThreadLocal serialNum = new ThreadLocal() {
protected synchronized Object initialValue() {
return new Integer(nextSerialNum++);
}
};

public static int get() {
return ((Integer) (serialNum.get())).intValue();
}
}

关于Java, "bind"线程的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1159404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com