· [Java论坛][安全论坛][数据库论坛][操作系统论坛]
· [专题] IBM Rational高峰论坛 Windows 7十大功能
· [专题] 史上就危险7月 微软 BizSpark 计划介绍
· [IT技术周刊][IT资源下载专区][病毒求助专区]
· [热点] 我也能做CTO_赛迪连载 赛迪七夕特别行动
· [热点] Chrome 4.0采用V8引擎 Java开发编程规范

编写线程安全的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技术 信息化
专题:扭亏为盈 联想09年Q2翻番
·专题:Tech·Ed 2009微..
·直播:2009互联网大会..
·迅雷搜狐"互搏" 谁动了..
专题:诺基亚危局已现 或重蹈摩托覆辙
·六股势力角逐4G标准 中..
·专题:联通iPhone并不贵..
·专题:排排坐开商店 三..
商务演示需求分析 多媒体会议室必备投影
·VMware在京隆重举行2009..
·专题:笔记本频道10月热..
·专题:学生机市场 惠普 ..
专题:Tech.Ed 2009微软技术大会
·专题:2009 SYBASE 亚太..
·专题:微软新一代桌面操..
·专题:2009年第3届CSDN..