WEB开发网
开发学院软件开发Java Java线程:深入ThreadLocal 阅读

Java线程:深入ThreadLocal

 2010-01-22 00:00:00 来源:WEB开发网   
核心提示: 可以看出,三个线程各自独立编号,Java线程:深入ThreadLocal(3),互不影响:Thread-01Thread-11Thread-02Thread-12Thread-03Thread-13Thread-21Thread-31Thread-22Thread-32Thread-23Thre

可以看出,三个线程各自独立编号,互不影响:

Thread-0  1 
Thread-1  1 
Thread-0  2 
Thread-1  2 
Thread-0  3 
Thread-1  3 
Thread-2  1 
Thread-3  1 
Thread-2  2 
Thread-3  2 
Thread-2  3 
Thread-3  3 
Process finished with exit code 0

tlt对象是一个,废话tl对象也是一个,因为组合关系是一对一的。但是tl对象内部的Map随着线程的增多,会创建很多Integer对象。只是Integer和int已经通用了。所以感觉不到Integer的对象属性。

二、不用ThreadLocal

假如不用ThreadLocal,只需要将MyThreadLocal类重新定义为:

/** 
* 使用了ThreadLocal的类 
* 
* @author leizhimin 2010-1-5 10:35:27 
*/ 
public class MyThreadLocal { 
        private Integer t1 = 0; 
        public Integer getNextNum(){ 
                return t1=t1+1; 
        } 

//        //定义了一个ThreadLocal变量,用来保存int或Integer数据 
//        private ThreadLocal<Integer> tl = new ThreadLocal<Integer>() { 
//                @Override 
//                protected Integer initialValue() { 
//                        return 0; 
//                } 
//        }; 
// 
//        public Integer getNextNum() { 
//                //将tl的值获取后加1,并更新设置t1的值 
//                tl.set(tl.get() + 1); 
//                return tl.get(); 
//        } 
}

上一页  1 2 3 4 5 6 7  下一页

Tags:Java 线程 深入

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接