ThreadLocal简析

/**
 * 
 * <b>Application name:ThreadLocal</b><br>
 * <b>Application describing:</b> <br>

 * 由于线程访问公共变量时需要加锁,加锁会令线程等待,降低并发程序的运行效率。ThreadLocal用于存储线程级变量,在可以的情况下,
 * 可以把资源复制多份,每个线程一份,这就可以不用加线程锁了。另外,如果在线程上游方法设置线程变量,线程下流方法都可以读取该变量,可以模拟实现参数传递。

 */
public class TheadLocalDemo
{
    private static ThreadLocal<MyConnnection> local=new ThreadLocal<MyConnnection>();
    /**
     * 
     * {方法功能中文描述}
     * 
         */
    public void method1()
    {
        System.out.println("方法1运行,设置线程变量。");
        TheadLocalDemo.local.set(new MyConnnection("jdbc:oracle:thin:@192.168.137.23:1521:orcl","oracle"));
    }
    /**
     * 
     * {方法功能中文描述}
     * 
         */
    public void method2()
    {
        System.out.println("方法2运行。");
    }
    /**
     * 
     * {方法功能中文描述}
     * 
          */
    public void method3()
    {
        System.out.println("方法3运行,获取线程变量。");
        MyConnnection con=TheadLocalDemo.local.get();
        System.out.println(con.getUrl()+"|"+con.getType());
    }
    /**
     * 
     * {方法功能中文描述}
     * 
     * @param args
          */
    public static void main(String[] args)
    {
        TheadLocalDemo demo=new TheadLocalDemo();
        demo.method1();
        demo.method2();
        demo.method3();
    }
}
/**
 * 
 * <b>Application name:</b><br>
 * <b>Application describing:线中存储的的类型</b> <br>
  */
class MyConnnection{
    private String url;
    private String type;
    

    /**
     * {方法功能中文描述}
     * 
     * @param url
     * @param type
        */
    
    public MyConnnection(String url, String type)
    {
        this.url = url;
        this.type = type;
    }

    /**
     * type的GET方法
     * @return String type.
     */
    public String getType()
    {
        return type;
    }

    /**
     * type的SET方法
     * @param type The type to set.
     */
    public void setType(String type)
    {
        this.type = type;
    }

    /**
     * url的GET方法
     * @return String url.
     */
    public String getUrl()
    {
        return url;
    }

    /**
     * url的SET方法
     * @param url The url to set.
     */
    public void setUrl(String url)
    {
        this.url = url;
    }
    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值