1.spring 2.5以后都是多例模式吧,也就是说通常在配置文件里的serviceImpl,有几个线程就会有几个实例,就不会出现同步问题吧2.根据JVM的说明,通常对象放在堆里所有线程共享,但是栈是线程独享的,里面放着变量,不同线程不同的栈,怎么还能造成变量同步问题?谢谢
解决方案 »
- JAVA遍历Oracle出了点小问题
- 关于一个打包成jar的简单问题
- 文件编码格式转换程序为什么不起作用
- 请问:怎么用String.Split()方法分割^字符啊??
- 高分求救 我在UNIX系统上 读取文件中文乱码问题
- 急求:如何在java代码中对ftp文件改名已经判断文件是否可读可写。
- 如何获得一个文件的“创建时间”属性?
- getQueryString()出现中文乱码问题--在线
- java中是通过什么类或者方法去修改注册表的,急!
- jbuilder里面怎么观察一个变量在程序运行时变化的过程?
- JAVA的窗口ICO.求助
- java运行中出现Exception in thread"main"java.lang.NoSuchMethod的错误
并不是所有的程序都存在线程安全问题,一个对象的不同方法里面只要不存在共享资源就不需要进行线程同步,就像server层的每个方法主要不存在共享对象或者没有对共享对象作修改操作就没必要每次都创建一个对象。
第二个问题没看懂,是不是每个线程里面的变量名都是这个线程的局部变量,所以对于其他线程都是不可见的,所以没变量同步问题
java中大多数基本类型都是原子的,引用类型也是,所以你不必担心他们的线程安全问题,一定安全的
但是long和double例外,他们不是原子的,会有多线程操作造成的安全问题,可以加volatile声明它们来确保线程安全性。
我的意思是,按JVM说明,几个线程各自拥有这个对象里面变量的栈,怎么还会发生干扰呢?
而栈里面放的就是这个地址就是引用,java里面没有地址这个概念
-------------这段话,说的是栈里存的是局部变量和中间运算结果吧,每个线程对于这个账户对象都有一个栈,所以我想发生同步问题和这段话不相符