手机
当前位置:查字典教程网 >编程开发 >JSP教程 >Servlet网上售票问题引发线程安全问题的思考
Servlet网上售票问题引发线程安全问题的思考
摘要:先分享相关代码:packagecom.lc.servlet;importjava.io.IOException;importjava.io....

先分享相关代码:

package com.lc.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Ticketsell extends HttpServlet { public int ticket = 3;//假设只有三张票 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); response.setContentType("text/html;charset=gbk"); //简单点而处理售票问题 //当一个变量需要多个用户共享,则应该在访问该变量的时候加 同步机制 //如果一个变量不需要共享则直接在doGet()和doPost()方法中定义即可,这样的话就不存在线程的安全型问题 synchronized (this) { //解决同步性问题的方法 if(ticket > 0) { System.out.println("你买到票了!"); out.println("你买到票了!"); //休眠 try { Thread.sleep(10*1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } ticket--; } else { System.out.println("你没有买到票!"); out.println("你没有买到票!"); } } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }

运行结果如下:在不同的游览器中同时访问这个资源 在第三次之后显示 票没有了!

Servlet网上售票问题引发线程安全问题的思考1

引发线程问题的思考,小编在之前的学习中也遇到过,现在线程问题有了一定的理解,希望大家也可以通过相关文章得到启发。

【Servlet网上售票问题引发线程安全问题的思考】相关文章:

jsp Servlet如何处理表单数据

用连接池提高Servlet访问数据库的效率(1)

JSP/Servlet应用程序优化八法

JSP中用回车监听按钮事件兼容火狐 IE等主流浏览器

Servlet与JSP间的传值问题

编写线程安全的JSP应用程序

jsp Servlet中脚本元素、指令和预定义变量解析

JSP开发工具的选择

编写线程安全的JSP程序

关于jsp和servlet中的乱码问题

精品推荐
分类导航