Servlet网上售票问题引发线程安全问题的思考
2015-12-11 00:00
501 查看
先分享相关代码:
运行结果如下:在不同的游览器中同时访问这个资源 在第三次之后显示 票没有了!
引发线程问题的思考,小编在之前的学习中也遇到过,现在线程问题有了一定的理解,希望大家也可以通过相关文章得到启发。
java向多线程中传递参数的三种方法详细介绍
java 实现线程同步的方式有哪些
Java线程关闭的3种方法
线程安全的单例模式的几种实现方法分享
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); } }
运行结果如下:在不同的游览器中同时访问这个资源 在第三次之后显示 票没有了!
引发线程问题的思考,小编在之前的学习中也遇到过,现在线程问题有了一定的理解,希望大家也可以通过相关文章得到启发。
您可能感兴趣的文章:
mysql 卡死 大部分线程长时间处于sending data的状态java向多线程中传递参数的三种方法详细介绍
java 实现线程同步的方式有哪些
Java线程关闭的3种方法
线程安全的单例模式的几种实现方法分享
相关文章推荐
- Java Servlet生成JSON格式数据并用jQuery显示的方法
- JSP使用Servlet过滤器进行身份验证的方法
- Python操作MySQL数据库9个实用实例
- Python实现各种排序算法的代码示例总结
- 深入源码解析Python中的对象与类型
- 一篇文章入门Python生态系统(Python新手入门指导)
- PHP异常处理Exception类
- 基于PHP如何把汉字转化为拼音
- PHP开发中AJAX技术的简单应用
- 搭建Vim为自定义的PHP开发工具的一些技巧
- 使用PHP+AJAX让WordPress动态加载文章的教程
- linux ps命令技巧
- 详解SQL中drop、delete和truncate的异同
- SQL Server中Check约束的学习教程
- jQuery点击改变class并toggle及toggleClass()方法定义用法
- jQuery弹簧插件编写基础之“又见弹窗”
- JavaScript基础篇(6)之函数表达式闭包
- jQuery使用$.ajax进行即时验证实例详解
- jQuery使用$.ajax提交表单完整实例
- jQuery入门之层次选择器实例简析