认识 ThreadLocal 与线程

认识 ThreadLocal 与线程

乐之源- 21:15:05
  servlet这个类本身是不是线程同步的? 
阿古- 21:15:46
  类本省怎么同步? 
我不知- 21:16:28
  最好不要用同步 
乐之源- 21:17:06
  是不是struts的action也是同样的情况> 
我不知- 21:17:14
  编写SERVLET不要把方法使用的变量定义为类变量.. 
阿古- 21:17:23
  这个我不清楚
  要看其实现了! 
我不知- 21:17:28
  对..STRUTS也是 
阿古- 21:17:55
  ww2是线程安全的 
阿古- 21:18:02
  action 
我不知- 21:18:12
  对 
阿古- 21:18:33
  不用struts
  麻烦 
乐之源- 21:19:03
  嘻嘻,我也觉着 
孤魂野鬼- 21:19:29
  ww2是线程安全的 
  why 
乐之源- 21:19:36
  ww2?是什么? 
阿古- 21:19:59
  webwork2
  因为把action 和ThreadLocal绑定
   
孤魂野鬼- 21:20:41
  说实话,看了半天ThreadLocal 也没看懂 
阿古- 21:20:57
  呵呵 
孤魂野鬼- 21:21:05
  可以搬个板凳,听讲座么? 
乐之源- 21:21:06
  看来得看看webworks了,好多新东东 
阿古- 21:21:33
  webwork比起struts有很多优点 
孤魂野鬼- 21:22:14
  知道 
孤魂野鬼- 21:22:20
  Tapestry更好 
乐之源- 21:22:32
  不会吧,怎么又有一个了 
 农民 - Javen- 21:22:37
  后来者总是会站在前者的肩膀上, .net 与 Java 的关系我想也类似吧。  
阿古- 21:22:47
  tapestry
  有很多问题
  我现在想不通 
孤魂野鬼- 21:22:57
    
孤魂野鬼- 21:23:22
  讲讲ThreadLocal? 
阿古- 21:23:25
  .net的那个东东,
  我觉得更像taglib
  只不过VS.net支持其可视化操作而以! 
 农民 - Javen- 21:24:08
  ThreadLocal 有兴趣听听哦。   
孤魂野鬼- 21:24:13
    
孤魂野鬼- 21:24:20
 农民 - Javen- 21:24:08
  ThreadLocal 有兴趣听听哦。   
孤魂野鬼- 21:24:25
  您是大牛 
阿古- 21:24:43
  不好意思
  我也不是很明白哈
  农民兄来讲将哈! 
 农民 - Javen- 21:24:48
  晕,我不懂,真的。  谁讲讲,我也搬过凳子坐下慢慢听 
孤魂野鬼- 21:25:01
  我g一下 
阿古- 21:25:11
  我还没有仔细研究过
  不过Robbin有相关文章讲解! 
乐之源- 21:25:13
  我还是站着听吧 
深入浅出- 21:25:44
  搬个凳子做第一排 
阿古- 21:26:38
  感觉有点像进程
  但是还没有搞明白到底是怎么实现的 
阿古- 21:26:54
  可以看看ThreadLocal的源代码! 
孤魂野鬼- 21:27:14
  概念也行 
深入浅出- 21:28:08
  什么东东? 
阿古- 21:30:57
  有空要好好研究一下! 
阿飞- 21:31:28
  我只见过win32里的线程本地存储。 
阿古- 21:32:07
  是不是一样的?
  讲讲看 
孤魂野鬼- 21:32:08
  public class ThreadLocal
  extends Object
via its get or set method- has its own, independently initialized copy of the variable.
   
孤魂野鬼- 21:32:34
  ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一
个Thread,而是thread local variable(线程局部变量)。 
深入浅出- 21:32:48
  嗯 
阿古- 21:33:32
  那跟thread有什么关联呢? 
阿飞- 21:33:35
  因为线程只有自已的“程序计算器,执行栈”,而没有自已的进程数据块,而
ThreadLocal提供了这种机制。 
阿飞- 21:33:49
  因为线程只有自已的"程序计数器,执行栈",而没有自已的进程数据块,而
ThreadLocal提供了这种机制。 
   
阿古- 21:33:49
  那跟thread有什么关联呢? 
阿飞- 21:34:16
  在没有引入ThreadLocal时,所有线程共享所在进程的数据块。 
孤魂野鬼- 21:34:17
  也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用
非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以
独立地改变自己的副本,而不会和其它线程的副本冲突。 
阿飞- 21:34:33
  是的。 
孤魂野鬼- 21:34:36
  所有的县城数据共享? 
阿飞- 21:35:05
  共享同一进程的数据块。 
孤魂野鬼- 21:35:42
  ThreadLocal是不是类似多个进程? 
阿飞- 21:36:45
  不是,它是一种机制,为每线程分配可重入的数据块的机制-不是执行栈。 
阿飞- 21:37:31
  还记得:win32为每进程分配4G的地址空间吧。 
阿古- 21:39:09
  只是进程的变量有线程的本地副本而以?? 
阿飞- 21:41:11
  1)每一线程必属于一个进程。
  2)每线程默认只有“程序计数器,执行线..”。
   
阿飞- 21:42:48
  但某一线程-执行了两个函数时,在第2个函数中想使用第1个函数中的设置值,如何办呢。 
孤魂野鬼- 21:43:35
  感觉进程像个工程,进程想里面的任务! 
孤魂野鬼- 21:43:54
  工程有资源,比如变量 
孤魂野鬼- 21:44:12
  第一个任务完成了,进程的变量变化了,第二个进程可以使用? 
孤魂野鬼- 21:44:22
  可以有多个任务 
阿飞- 21:44:38
  办法是:
  1)将第1函数的栈变量传到第2个函数。
  2)使用该线程所在进程的全局变量。
  2)使用ThreadLocal. 
孤魂野鬼- 21:45:25
  ThreadLocal 怎么同步? 
阿古- 21:45:39
  不用同步 
孤魂野鬼- 21:45:47
  每个线程都有变量,怎么给别人? 
孤魂野鬼- 21:45:56
  你变了,别人没变 
孤魂野鬼- 21:45:58
  怎么用? 
阿古- 21:46:25
  各干各的,
  不传值吧? 
阿飞- 21:47:14
  ThreadLocal-相当于为当前线程(人)分专用箱,除了该线程可以使用外,别人(线
程)无权使用。 
阿古- 21:47:54
  有点像进程 
  没有像进程那样重量级? 
孤魂野鬼- 21:47:54
  办法是:
  1)将第1函数的栈变量传到第2个函数。
  2)使用该线程所在进程的全局变量。
  3使用ThreadLocal. 
  
  所以第三个不行吧? 
孤魂野鬼- 21:48:24
  是呀,感觉like 进程了 
阿古- 21:48:28
  ThreadLocal是用来保护本地变量的 
孤魂野鬼- 21:49:48
  http://www.yesky.com/SoftChannel/72342371961929728/20031208/1751307.shtml 
孤魂野鬼- 21:50:04
  咋一谈技术,就都不说话了泥 
阿古- 21:50:26
  看看文章哈 
孤魂野鬼- 21:50:35
    
阿飞- 21:51:37
  看看OS的书就知道了,另外n久以前的win32核心编程-其中提到了ThreadLocal. 

posted on 2004-09-17 14:12  笨笨  阅读(848)  评论(0编辑  收藏  举报

导航