Mal*_*lax 3 java multithreading
我只是想知道一些库如何检测它们运行在哪个线程并"绑定"某些东西......例如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();
}
}
Run Code Online (Sandbox Code Playgroud)