线程安全的单态类会影响性能么?

当一个线程安全的单态类被多线程并发访问时,对性能的影响有多大?

困惑中。。。

我觉得,不会影响;
我有个疑问:stateless session bean,用实例池,每次执行远程方法对应不同对象,这种情况与使用RMI,多个客户共享一个对象.不考虑J2EE的框架代码,性能应该相等吗?

自己顶一下,个人认为
在stlb中,由appserver对线程、ejb的不同实例间进行了隔离
从使用ejb的角度来看也是线程安全的。
性能可能比纯rmi调用要慢一些,但健壮性要好

SLSB不是线程安全的

我认为影响非常大,如果在关键点,可能导致全系统并发用户只有有一个用户,这样的系统算单用户系统或DEMO系统吧。

其实这也是我这段时间看线程(不要笑,线程这东西我是这几天才开始研究的)的时候一直在考虑的问题,就象banq说的:“如果在关键点,可能导致全系统并发用户只有有一个用户”,其实我觉得无论什么时候都只是一用户而已,所谓的多线程也是要根据机制一个一个获得锁,然后才能运行。这就让我很郁闷和疑惑了,我到底应该怎么去使用线程这东西呢?目前使用到线程的地方只有connection pool而已(而且是不完全的线程,而且是一个单线程,用run()无stop()或yield()),这也是我为什么开始看线程的原因,但到现在还不明了。

/****
其实这也是我这段时间看线程(不要笑,线程这东西我是这几天才开始研究的)的时候一直在考虑的问题,就象banq说的:“如果在关键点,可能导致全系统并发用户只有有一个用户”,其实我觉得无论什么时候都只是一用户而已,所谓的多线程也是要根据机制一个一个获得锁,然后才能运行。这就让我很郁闷和疑惑了,我到底应该怎么去使用线程这东西呢?目前使用到线程的地方只有connection pool而已(而且是不完全的线程,而且是一个单线程,用run()无stop()或yield()),这也是我为什么开始看线程的原因,但到现在还不明了。
****/
如果每个线程操作只操作属于自己的对象,就不用当心锁,只有共享资源才需要锁。

直觉“线程安全单态类对性能是否有影响”应该从堆栈方向分析,但现在还没有搞清除,看来应该多看看虚拟机原理方面的冬冬。

另外四楼的同志说slsb不是线程安全的,请解释一下为什么?

回楼上的
我说的情况就是“只有共享资源才需要锁”,如果不是的话,线程讨论起来也没太大意思了。

请举例说明:何为关键点?如果没有,是否没有影响!

>请举例说明:何为关键点?如果没有,是否没有影响!
比如struts的ActionServlet,如果是线程安全的,就会严重的影响性能。但是ActionServlet不是单例。

一个线程安全的单态类在一定的条件下会影响性能
比如对IO操作,数据库等资源操作加入到同步块里

我的意思是在SLSB的方法中对SLSB所包含的成员变量进行操作的时候不是线程安全的.另我想问问ACTIONSERVLET不是单例的这说法cats_tiger兄是怎么知道的?