返回信息流言简意赅的描述下,我的程序框架是这样的 servelt -> service -> DAO -> Database
现在的问题就是我不确定在多用户并发访问的情况下我的servlet是否是线程安全的?也就是说会不会出现用户得到的数据互相混乱的情况(这是相当糟糕的=_ =。。。)特来向坛子里的童鞋们请教下
大概的伪代码图如下:
User (POJO对象)
===============================
int userid
Stirng username
String password
// getter and setter method
UserDao (DAO数据访问对象,里面的方法用hibernate写的)
===============================
add(User)
delete(User)
update(User)
List find(int)
{
//......get from data base
}
UserService (往上封装的服务类,会存一个dao的实例对象)
===============================
UserDao userDao = new UserDao();
-------------------------------
add(User)
delete(User)
update(User)
find(int userid)
{
List list = userDao.find(userid)
}
UserServlet (servlet类,会存一个UserService的实例变量)
================================
UserService userService = new UserService();
--------------------------------
doPost(request,response)
{
String userid = request.getParameter("userid");
User user = userService.find(userid);
response.getWriter().write(user.getUsername());
response.getWriter().close();
}
图解:
类名
===========
实例变量
-----------
方法
问题:
servlet中打印出来的username在多线程下会不会出现混乱的情况?也就是我的userid发送请求回来的不是我对应的username,而是别人的?
response.getWriter().write(user.getUsername());
看了网上相关文章各种说同步问题,觉得应该没啥问题,可是还是不懂。。。请教啦~[ema13]
这是一条镜像帖。来源:北邮人论坛 / java / #16217同步于 2010/10/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
【求助】servlet线程安全问题
neo861002
2010/10/31镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
需要考虑同步的前提是:有共享的资源
但是你这个servlet完全没有共享的东西,比如成员变量之类的。所以你这个例子不需要考虑同步问题
【 在 neo861002 的大作中提到: 】
: 言简意赅的描述下,我的程序框架是这样的 servelt -> service -> DAO -> Database
: 现在的问题就是我不确定在多用户并发访问的情况下我的servlet是否是线程安全的?也就是说会不会出现用户得到的数据互相混乱的情况(这是相当糟糕的=_ =。。。)特来向坛子里的童鞋们请教下
: 大概的伪代码图如下:
: ...................
无状态对象都是线程安全的
【 在 neo861002 (哈欠神|ReMinD) 的大作中提到: 】
: 言简意赅的描述下,我的程序框架是这样的 servelt -> service -> DAO -> Database
: 现在的问题就是我不确定在多用户并发访问的情况下我的servlet是否是线程安全的?也就是说会不会出现用户得到的数据互相混乱的情况(这是相当糟糕的=_ =。。。)特来向坛子里的童鞋们请教下
: 大概的伪代码图如下:
: ...................
re
楼主可以读下 JAVA并发编程实践
【 在 hotcode (木易) 的大作中提到: 】
: 需要考虑同步的前提是:有共享的资源
: 但是你这个servlet完全没有共享的东西,比如成员变量之类的。所以你这个例子不需要考虑同步问题
恩 没错 糊涂了糊涂了 还是当时学的没理解透啊 多谢“热码”~
【 在 hotcode 的大作中提到: 】
: 需要考虑同步的前提是:有共享的资源
: 但是你这个servlet完全没有共享的东西,比如成员变量之类的。所以你这个例子不需要考虑同步问题
: 【 在 neo861002 的大作中提到: 】
: ...................
多谢版主推荐~
【 在 ox 的大作中提到: 】
: re
: 楼主可以读下 JAVA并发编程实践
: 【 在 hotcode (木易) 的大作中提到: 】
: ...................