· [Java论坛][安全论坛][数据库论坛][操作系统论坛]
· [访谈] 网银安全系列访谈之:惊心动魄网银故事
· [热点专题] 网银安全系列 3G上网卡巡礼
· [订阅IT技术周刊][IT资源下载专区][病毒求助专区]
· [热点] 跨站脚本十二问 四步防范Conficker
· [热点] Windows 7 RC版公开下载 憾缺中文版

编写线程安全的JSP程序(2)

发布时间:2006.04.27 01:07     来源:天新网    作者:

编写线程安全的JSP程序(2)


三、解决方法


采用单线程方式

在该JSP文件中加上: ,使它以单线程方式执行,这时,仍然只有一个实例,所有客户端的请求以串行方 式执行。这样会降低系统的性能.


对函数savebuy()加synchronized进行线程同步,该JSP仍然以多线程方式执行,但也会降低系统的性能

public synchronized void savebuy()

{

......

}


采用局部变量代替实例变量,函数savebuy()声明如下:

因为在savebuy()中使用的是传给他的形参,是在堆栈中分配的,所以是线程安全的.

public void savebuy(String name,String product, int quantity)

{

......

}


调用方式改为:

<%

String name

String product;

long quantity;

name=request.getParameter("name");

product=request.getParameter("product");

quantity=request.getParameter("quantity");

savebuy(name,product,quantity)

%>



如果savebuy的参数很多,或这些数据要在很多地方用到,也可声明一个类,并用他做参数,如:


public class buyinfo

{

String name;

String product;

long quantity;

}

public void savebuy(buyinfo info)

{

......

}


调用方式改为:

<%

buyinfo userbuy = new buyinfo();


userbuy.name=request.getParameter("name");

userbuy.product=request.getParameter("product");

userbuy.quantity=request.getParameter("quantity");

savebuy(userbuy);

%>



所以最好是用3,因为1,2会降低系统的性能.

多线程问题一般只有在在大并发量访问时,才有可能出现,并且很难重复出现,所以应在编程时就时刻注意。


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 编写线程安全的JSP程序(1) (10-17) · JSP学习心得(2) (06-16)
· JSP学习心得(1) (09-25) · JSP及JSP页面的翻页(2) (08-05)
· jsp中读取远程机器的Properties文件和ip地址 (02-21) · jsp留言板源代码(2) (09-07)
· jsp留言板源代码(1) (10-06) · 再谈jsp和asp的比较问题 (12-14)
· 使用JSP技术设计电子商务应用系统(2) (07-05) · 使用JSP技术设计电子商务应用系统(1) (12-02)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
资讯 通信 IT产品 IT技术 信息化
2009第七届中国电脑商年会直播
·创业投资系列访谈:产业..
·特别策划:视频网站系列..
·专题:网游虚拟货币新规..
专题:6月上市手机新品回顾及7月新机展望
·2009年中国电信业信息化..
·专题:把iPhone 3GS“解..
·WAPI重启国际标准进程 ..
专题:09年中盘点-联想春季打印机新品回顾
·InfoComm 2009 视听与集..
·网游背后的故事 网游服..
·[专题]联想ThinkPad T40..
BizSpark:微软为技术创业企业点燃火花
·社区活动:我的IT求知生..
·访谈:内网安全2009系列..
·安全访谈:网银安全之Sa..