LocalThread局部线程有什么意义呢,Thread不也可以完成它的作用么?

解决方案 »

  1.   


    同一个线程内,可能要对同一个系统资源调用好多次,那么如果每次都请求,然后释放,这就存在着效率问题。比如:把一个数据库连接保存在 localThread 内。对于同一个线程,就可以直接取出来用,而不用重新创建!--------------------------
    但是这不一定就好,要根据你自己的程序的需要而定。
      

  2.   

    LocalThread是什么?
    我只知道ThreadLocal
      

  3.   

    对不起,写错了是ThreadLocal
    To zeq258(近朱者赤) :那我在线程中再建一个线程对象不也可以么?为什么要用threadlocal阿
      

  4.   

    ThreadLocal相当于为线程开辟了一个“属于自己的变量区”,而且这里面的数据只能是线程自己能取,其他线程也都只能取“自己变量区”的数据。    举个例子,比如你在session中放置了用户帐号信息account,你可以在sevlet或jsp中访问到,但是你也希望你在底层dao层能够访问到这个变量,同时不希望改变dao已经有的接口。这个case下面你就可以在servlet层将用户的account放到当前线程的“局部变量区”里面,然后在dao方法里面从当前线程的“局部变量区”里面取得数据。   PS:这里的局部变量区只是个比方,其实ThreadLocal中数据是保存在一个全局的HasMap中,并且是以Thread作为key的。所以你存取数据的时候,就是与你线程相关的数据,不会和其他线程发生混淆。
      

  5.   

    Nowish() ( ) 信誉:100  2006-04-03 11:36:00  得分: 0  
     
     
       对不起,写错了是ThreadLocal
    To zeq258(近朱者赤) :那我在线程中再建一个线程对象不也可以么?为什么要用threadlocal阿
      
     
    ---------------------
    to:楼主:同一个线程内,可能要对同一个系统资源调用好多次,那么如果每次都请求,然后释放,这就存在着效率问题。
    难道说得还不清楚吗,
    “那我在线程中再建一个线程对象不也可以么”,当然可以呀!
    可是,效率问题!