您现在的位置是:网站首页> 编程资料编程资料
Servlet网上售票问题引发线程安全问题的思考_JSP编程_
2023-05-25
121人已围观
简介 Servlet网上售票问题引发线程安全问题的思考_JSP编程_
先分享相关代码:
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); } } 运行结果如下:在不同的游览器中同时访问这个资源 在第三次之后显示 票没有了!

引发线程问题的思考,小编在之前的学习中也遇到过,现在线程问题有了一定的理解,希望大家也可以通过相关文章得到启发。
您可能感兴趣的文章:
相关内容
- jsp实现将信息放入xml中的方法_JSP编程_
- jsp+Servlet编程实现验证码的方法_JSP编程_
- jsp+servlet+javabean实现数据分页方法完整实例_JSP编程_
- jsp编程获取当前目录下的文件和目录及windows盘符的方法_JSP编程_
- 使用jsp:include控制动态内容的方法_JSP编程_
- JSP针对XML文件操作技巧实例分析_JSP编程_
- jsp基于XML实现用户登录与注册的实例解析(附源码)_JSP编程_
- servlet+JSP+mysql实现文件上传的方法_JSP编程_
- jsp实现防盗链的方法_JSP编程_
- JSP基于dom解析xml实例详解_JSP编程_
