java多线程实现卖票小程序
package shb.java.demo;
/**
* 多线程测试卖票小程序。
* @Package:shb.java.demo
* @Description:
* @author shaobn
* @Date 2015-9-2下午7:49:53
*/
public class TestSyn {
public static void main(String[] args) {
//此注释为实现方式一
/*TicketDemo td = new TicketDemo();
Thread t1 = new Thread(td);
Thread t2 = new Thread(td);
t1.start();
t2.start();*/
//为实现方式二
TicketDemo2 td2 = new TicketDemo2();
Thread t3 = new Thread(td2);
Thread t4 = new Thread(td2);
t3.start();
t4.start();
}
}
/**
* 卖票的类(实现方式一)
* @Package:shb.java.demo
* @Description:
* @author shaobn
* @Date 2015-9-2下午7:44:45
*/
class TicketDemo implements Runnable{
private int ticket = 200;
public void run(){
while(true){
synchronized(this){
if(ticket>0){
try {
Thread.sleep(100);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
System.out.println(Thread.currentThread()+"***"+"票数为"+ticket--);
}
}
}
} }
/**
* 卖票的类(实现方式二)
* @Package:shb.java.demo
* @Description:
* @author Shihaobin
* @Date 2015-9-2下午7:51:56
*/
class TicketDemo2 implements Runnable{
public int ticket = 200;
public void run(){
while(true){
show();
}
}
//实现对多线程程序的封装
public synchronized void show(){
if(ticket>0){
try {
Thread.sleep(100);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
System.out.println(Thread.currentThread()+"***"+"票数为"+ticket--);
} }
}
利用多线程实现的简单模拟卖票。
java多线程实现卖票小程序的更多相关文章
- java 多线程之卖票两种方式
1.通过extends Thread /* 需求:简单的卖票,多个窗口同时买票 (共用资源) 创建线程的第二种方式:实现Runnable接口 步骤: 1,定义类实现Runnable接口 2,覆盖/重写 ...
- 对于JAVA多线程卖票小程序的理解
昨天把多线程重新看了一遍,发现自己还是有许多需要理解的地方,现在写一篇总结. 一:利用继承Thread类会出现的问题: public class SellTicketsThread extends T ...
- Java生鲜电商平台-小程序或者APP拼团功能设计与架构实战
Java生鲜电商平台-小程序或者APP拼团功能设计与架构实战 说明:Java生鲜电商平台拼团是拉新引流的利器,将拼团运用到极致的就是拼多多,前期通过选取性价比高.实用性强的商品进行拼团,在社交圈(主要 ...
- Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战
Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战 说明:Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战,优惠券是一种常见的促销方式,在规定的周期内购买对应商品类型和额度的商品 ...
- java学习多线程之卖票示例
这一节我们来说一个示例就是卖票示例: 需求: 我们现在有100张票,然后分四个窗口来卖,直到卖完为止. 思路: 1.先定一个一个票类,描述票的属性,还有打印卖出的票,并且实现Runnable中的run ...
- Java之多线程窗口卖票问题(Runnable)
/** * 例子:创建三个窗口卖票,总票数为100张.使用实现Runnable接口的方式 * 存在线程的安全问题,待解决. */class Window1 implements Runnable{ p ...
- Java之多线程窗口卖票问题(Thread)
/** * * 例子:创建三个窗口卖票,总票数为100张.使用继承Thread类的方式 * * 存在线程的安全问题,待解决. * */class Window extends Thread{ priv ...
- 基于JAVA网络编程的聊天小程序
package com.neusoft.edu.socket; import java.io.BufferedReader; import java.io.IOException; import ja ...
- Java多线程同步问题:一个小Demo完全搞懂
版权声明:本文出自汪磊的博客,转载请务必注明出处. Java线程系列文章只是自己知识的总结梳理,都是最基础的玩意,已经掌握熟练的可以绕过. 一.一个简单的Demo引发的血案 关于线程同步问题我们从一个 ...
随机推荐
- I方法 thinkphp
function I($name,$default=null,$filter=null,$datas=null) { static $_PUT = null; $default_filter='htm ...
- Hbase中rowkey设计原则
1.热点问题 在某一时间段,有大量的数据同时对一个region进行操作 2.原因 对rowkey的设计不合理 对rowkey的划分不合理 3.解决方式 rowkey是hbase的读写唯一标识 最大长度 ...
- 使用Areas分离ASP.NET MVC项目
为什么需要分离? 我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等.但是在实际 ...
- UITableViewCell 设置圆角
#import <QuartzCore/QuartzCore.h> QuartzCore.framework [self.commentsCell.layer setMasksToBoun ...
- 10 Ways to Inspire Your Team
Inspire. Just the word itself causes us to pause and think. We may remember our own personal heroes ...
- Xcode 自定义代码段
看见老师敲程序时,快捷键一打,所需要的一整行代码都出来了,着实感觉到效率太高了. 看了几天,才反应过来为什么自己没有get这个方法呢,现在就整理一番,记录一下. 此处以@property(nonato ...
- 最近在用mvc3开发时遇到的一些小问题与解决方法....
问题一:控制器中的字符串如何显示在view的javascript中?例如ViewBag.str="1,2,3,4,5"; 解决办法:例如:<script type=" ...
- nc 反弹链接
nc -l -v -p 80在本机监听80端口,此时80端口是打开的,我们可以在浏览器输入127.0.0.1进行浏览,此时就会出现连接,我们再在监听窗口输入字符,就会在浏览器上显示了.知道上面的作用后 ...
- python_列表
1. 列表的定义 (1) 用[]包含的元素,就是列表 (2)可以用list函数定义列表 2. 基本的列表操作(可参考示例) (1)元素赋值 (2)删除元素 (3)分片赋值 3. 列表方法 (1) ...
- 3D Modeling using GDI+
https://code.msdn.microsoft.com/3D-Modeling-using-GDI-b93937b9 Introduction Most of us use OpenGL/ D ...