宝哥软件园

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

编辑:宝哥软件园 来源:互联网 时间:2021-09-20

先分享相关代码:

打包。LC。servlet导入Java。io。ioexception导入Java。io。版画作家;导入javax。servlet。servletexception导入javax。servlet。http。HttpServlet导入javax。servlet。http。HttpServletrequest导入javax。servlet。http。HttpServletResponse公共类Ticketsell扩展了httpersvlet { public int ticket=3;//假设只有三张票public void DoGet(Httpservletrequest请求,HttpServletResponse响应)引发ServletException,IOException { PrintWriter out=响应。getwriter();回应。setcontenttype(' text/html;charset=gbk ');//简单点而处理售票问题//当一个变量需要多个用户共享,则应该在访问该变量的时候加同步机制//如果一个变量不需要共享则直接在doGet()和doPost()方法中定义即可,这样的话就不存在线程的安全型问题已同步(此){ //解决同步性问题的方法如果(票证0) { System.out.println('你买到票了!');out.println('你买到票了!');//休眠尝试{线程。睡眠(10 * 1000);} catch(中断的异常e){//TODO自动生成的捕捉块e . print stack trace();}机票-;} else { System.out.println('你没有买到票!');out.println('你没有买到票!');} } } public void doPost(HttpServletrequest请求,HttpServletResponse响应)引发ServletException,IOException { this.doGet(请求,响应);}}运行结果如下:在不同的游览器中同时访问这个资源在第三次之后显示票没有了!

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

更多资讯
游戏推荐
更多+