线程私有变量,这是个什么概念?如何实现? rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 run函数里的变量不就是只能在某个线程中使用吗? 线程函数里定义的变量都是线程私有变量的,线程间不能访问.如果需要定义线程间的共享,就用TreadLocal.当然定义全局变量也可在线程间访问,但就不是所讨论的范围了. 难道是在线程里定义的private 变量?????? 线程私有变量,看上去像线程里的局部变量。 在线程里面定义的private变量是可以被多个线程共享的变量。 放到ThreadLocal里面,就只能本线程访问。 一个 static Map , 以线程作为 key , 存储对象。你要用时:private static final MyClass instances = new ThreadLocal(){ protected Object initialValue(){ // 如果没有找到的话就调用获取初始值,实现默认是return null, 我们可以改下。 return new MyClass(); }};public static MyClass getCurrentInstance(){ return (MyClass) instances.get(); // 以当前线程作为 key 来检索对象实例。}public static void setCurrentInstance(MyClass sample){ instances.set(sample); // 放进去。}以后每次都用 getCurrentInstance() 这样的方式访问, 同一个线程里的调用将得到同一个实例。 用ThreadLocal,其会为每个线程维护一个值(类似于在里面维护了一个map,线程id作key) Panel不能设置大小 poi操作word,能控制字体和颜色 问大虾一个问题! 怎么把JPanel的控件清空? [100分]请问如何改变字符串输出的颜色 关于JFileChooser 的过滤 以及文件保存问题 我的硬盘多了5个G。帮帮我吧!! 怎么样才能做出下拉菜单的效果 为什么运行结果是1234.请详细解答 java中ThreadLocal类,多个线程创建出同一个对象? 直线与多边形相交的问题! 请教API和JDK有什么区别?
private static final MyClass instances = new ThreadLocal(){
protected Object initialValue(){
// 如果没有找到的话就调用获取初始值,实现默认是return null, 我们可以改下。
return new MyClass();
}
};public static MyClass getCurrentInstance(){
return (MyClass) instances.get(); // 以当前线程作为 key 来检索对象实例。
}public static void setCurrentInstance(MyClass sample){
instances.set(sample); // 放进去。
}以后每次都用 getCurrentInstance() 这样的方式访问, 同一个线程里的调用将得到同一个实例。