简单ThreadLocal模式开发

来源:互联网 发布:科技部人工智能会议 编辑:程序博客网 时间:2024/05/18 03:14

ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。

ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作来创建的对象,每个线程创建一个,不是什么对象的拷贝或副本。

ThreadLocal的接口方法

ThreadLocal类接口很简单:

●void set(Object value)

设置当前线程的线程局部变量的值。

●public Object get()

该方法返回当前线程所对应的线程局部变量。

●public void remove()

将当前线程局部变量的值删除,目的是为了减少内存的占用,该方法是JDK 5.0新增的方法。需要指出的是,当线程结束后,对应该线程的局部变量将自动被垃圾回收,所以显式调用该方法清除线程的局部变量并不是必须的操作,但它可以加快内存回收的速度。



public class SystemContext
{
    private static ThreadLocal xxx = new ThreadLocal();
    private static ThreadLocal yyy= new ThreadLocal();
    
    public static int getXxx()
    {
        Integer _xxx = (Integer)xxx.get();
        if(_xxx== null)
        {
            return 0;
        }
        return _xxx;
    }
    public static void setXxxt(int _xxx)
    {
        offset.set(_xxx);
    }
    public static int getYyy()
    {
        Integer _yyy = (Integer)yyy.get();
        if(_yyy == null)
        {
            return 0;
        }
        return _yyy;
    }
    public static void setYyy(int _yyy)
    {
        pagesize.set(_yyy);
    }
    
    public static void removeXxx()
    {
       xxxremove();
    }
    public static void removeYyy()
    {
        yyy.remove();
    }
}





原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 国美退款不到账怎么办 小米小店通过了怎么办 苹果的发票丢了怎么办 苹果7p开不开机怎么办 申请退款了怎么卖家还发货怎么办 买家申请退款卖家不退款怎么办 卖家恶意不退款怎么办 欠条到期了对方不还钱怎么办 冰箱磕了一坑怎么办 办信用卡没有家庭地址的怎么办 钱付了货没收到怎么办 在苏宁易购上买东西地址错了怎么办 手机分期付款银行卡丢了怎么办 华硕笔记本鼠标不动了怎么办 韵达快递不派送怎么办 中通快递不派送怎么办 农业银行信用卡密码输错三次怎么办 农业银行卡多次输错密码怎么办 想把店长弄走怎么办 济南银座卡过期了怎么办 银座购物卡丢失后怎么办 银座的卡丢了怎么办 银行卡换了旧卡怎么办 大理市民卡丢了怎么办 市民卡内的钱怎么办 宝付支付乱扣款怎么办 苏宁任性贷逾期怎么办 第二次跟家里开口要钱还网贷怎么办 网贷到家来要钱怎么办 网贷贷不了啦急要钱怎么办 百度推广竞价关键词太长怎么办 药店位置差客流少怎么办 网站上的用词违规怎么办 苹果16g内存不够怎么办 手机16g内存不够怎么办 在私企年纪大了怎么办 谷歌浏览器显示不安全打不开怎么办 4s密码多次错误怎么办 苹果4s手机系统错误怎么办 汽车充电口坏了怎么办 如果手机充不了电怎么办