易截截图软件、单文件、免安装、纯绿色、仅160KB

java 线程安全

线程安全
     只有在单例并发的情况下才会出现线程安全问题,引起问题的主要原因就在于对象的资源共享(如实例变量等),不过局部变量是线程安全的。因此在程序设计的时候尽量不要用实例变量。产生这样原因在于java的内存分配机制,实例变量是存放在堆内存中的所有线程共享,而每个线程也都有自己的线程盏,局部变量存放在线程盏中,各线程独享。
     简要的说在并发的时候,servlet与struts1都是单例多线的模式,一旦声明的有实例变量,就会引起线程安全问题。struts2是多例单线模式(需要配置)无所谓线程安全。spring中server层对象一般都是无状态的,因此运用单例亦不会出现线程安全问题,如果对象存在状态就需要考虑并发下的线程安全问题。
     下面简单的介绍下ThreadLocal:
      ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread
,而是thread local variable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。
线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一
个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。
从线程的角度看,就好像每一个线程都完全拥有该变量。
    
      个人简要理解为线程的单例。和并发多线程并没有直接的关系,关注的领域也是不同的!不要将ThreadLocal和多线并发混淆。
转自:
http://utopiasky.javaeye.com/blog/576860


相关文档:

关于java的++和

public class JavaPlus {

public static void main(String[] args) {
int x = 5;
x++;// x = x + 1;//后加加
System.out.println(x);
x--;// x = x - 1;//后减减
System.out.println(x);
++x;// x = x + 1;//前加加
Sys ......

java 枚举(网上找的留着温习)

对枚举类型印象大多来自于C
语言,在
C
语言中,枚举类型是一个
HardCode
(硬编码)类型,其使用价值并不大。因此,在
Java 5
之前,枚举是被抛弃的。然而
Java 5
以后的发现版本开始对枚举进行支持,枚举的引入给
Java
世界带来了争议。
笔者比较赞同引入枚举,作为一门通用的静态编程语言,应该是 ......

Java学习之路:不走弯路,就是捷径


0
.引言
在ChinaITLAB
导师制辅导中,笔者发现问得最多的问题莫过于"
如何学习编程?Java
该如何学习?"
。类似的问题回答多了,难免会感觉厌烦,就萌生了写下本文的想法。到时候再有人问起类似的问题,我可以告诉他(她),请你去看看《Java
学习之路》。拜读过台湾蔡学镛先生的《Java
夜未眠》,有 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号