如果多个用户同时访问web服务器,它是如何做的呢?
用一个线程接受所有请求,还是为每个用户建立一个线程?
tomcat和weblogic一样吗?如果有多个用户同时访问web服务器的某个功能,
比如修改数据方法 modify(...),这个方法内部包括很多条插入和修改操作。
所以modify中使用了事务机制,以保证ACID特性。
那么需要为这个modify方法加上同步关键字synchronized以保证这个方法,的串行执行?
还是ACID中的隔离性就可以保证数据的正常了?因为我现在的业务逻辑中都没有加同步,仅仅用了spring的声明式事务机制管理起来,有的还没有用spring管理,
所以有些疑问,请大侠们解答。
用一个线程接受所有请求,还是为每个用户建立一个线程?
tomcat和weblogic一样吗?如果有多个用户同时访问web服务器的某个功能,
比如修改数据方法 modify(...),这个方法内部包括很多条插入和修改操作。
所以modify中使用了事务机制,以保证ACID特性。
那么需要为这个modify方法加上同步关键字synchronized以保证这个方法,的串行执行?
还是ACID中的隔离性就可以保证数据的正常了?因为我现在的业务逻辑中都没有加同步,仅仅用了spring的声明式事务机制管理起来,有的还没有用spring管理,
所以有些疑问,请大侠们解答。
解决方案 »
- java中的Swing桌面开发显示模态窗口
- 现在的网页游戏都是用哪些东西做出来的?
- 嗯一切为了金钱,,,找一个人气点的J2EE群,,,
- 我有一个java程序组 教授跟我说是对的 但是我不知道如何运行 跪求教!(内含代码)
- 一道java难题
- 如何判断一个程序已经在运行
- 请问!java编程时,大家用哪个开发工具
- #用java 画个窗口,怎么它就这么难!
- 关于焦点移到单元格时,单元格中数据处于被选状态的问题???
- 我的Java系统连接MySQL数据库,出现下面问题,请教!!1
- 加载applet时出现java.lang.NoClassDefFoundError,如何解决
- [救急]关于jdbc批处理更新时候的查询问题
还在看struts对请求的处理。。
2.对于事物的控制,如果多个线程没有对内存的同一个变量进行修改,就不需要加synchronized关键字。
3.对于数据库事物的ACID,如果一个线程对某个数据库表进行DML操作,那么数据库提供的机制就会对这张表枷锁,其他线程是不能修改这张表的,知道表的锁被第一个访问的现场释放,也就是第一个线程退出!综上如果modify方法只是对数据库的多个操作,在多个线程之间是不用考虑同步的,也就是不用加synchronized关键字,但是你必须保证一个线程内部的事务完整性,就是必须保证线程内部的事务的ACID特性!
感谢WANGYQ_412的回答,使我受益匪浅