困惑中。。。
我有个疑问:stateless session bean,用实例池,每次执行远程方法对应不同对象,这种情况与使用RMI,多个客户共享一个对象.不考虑J2EE的框架代码,性能应该相等吗?
在stlb中,由appserver对线程、ejb的不同实例间进行了隔离
从使用ejb的角度来看也是线程安全的。
性能可能比纯rmi调用要慢一些,但健壮性要好
其实这也是我这段时间看线程(不要笑,线程这东西我是这几天才开始研究的)的时候一直在考虑的问题,就象banq说的:“如果在关键点,可能导致全系统并发用户只有有一个用户”,其实我觉得无论什么时候都只是一用户而已,所谓的多线程也是要根据机制一个一个获得锁,然后才能运行。这就让我很郁闷和疑惑了,我到底应该怎么去使用线程这东西呢?目前使用到线程的地方只有connection pool而已(而且是不完全的线程,而且是一个单线程,用run()无stop()或yield()),这也是我为什么开始看线程的原因,但到现在还不明了。
**/
如果每个线程操作只操作属于自己的对象,就不用当心锁,只有共享资源才需要锁。
直觉“线程安全单态类对性能是否有影响”应该从堆栈方向分析,但现在还没有搞清除,看来应该多看看虚拟机原理方面的冬冬。
另外四楼的同志说slsb不是线程安全的,请解释一下为什么?
我说的情况就是“只有共享资源才需要锁”,如果不是的话,线程讨论起来也没太大意思了。
比如struts的ActionServlet,如果是线程安全的,就会严重的影响性能。但是ActionServlet不是单例。
比如对IO操作,数据库等资源操作加入到同步块里