一个简单多线程购票Demo

package thread;

public class Test02 {        //定义初始票数
	public static int chepiao = 20;
	public static void main(String[] args) {    
		Test02 t = new Test02();		//匿名类创建线程
		Thread t1 = new Thread() {
			@Override
			public void run() {	              //加同步锁
			 synchronized(Test02.class) {                    //卖完就停止
				 if(chepiao<=0) {
						return;
					}
					// TODO Auto-generated method stub
						try {
							t.jianfa();
						} catch (InterruptedException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					super.run();
				}
			 }

		};

          //启动30个线程
		for(int i = 1;i<30;i++) {
			new Thread(t1).start();	

		}
	}

	//票数-1
	public synchronized   void jianfa() throws InterruptedException {
		chepiao--;
		System.out.println("线程: "+Thread.currentThread().getName()+",抢到1张票,剩余"+chepiao+"张!");

	}

}备注:在对变量进行共享线程时,最好使用AtomicInteger 进行自增或递减操作

  

原文地址:https://www.cnblogs.com/mzxx/p/11351349.html

时间: 2024-10-18 13:25:46

一个简单多线程购票Demo的相关文章

写一个简单的 django_post demo

1.新建一个django工程,其路由为下图 2.要做的是一个 简单的登录请求,以表单形式提交,html 部分代码如下 这里注意action指向的是路由的地址,index1后的views.login部分代码如下 这段代码指的是,如果login接收到的请求是个post 然后就把传入的用户名 密码输出出来,因为我这个工程里面输入server/index1/之后进入login, 但是这里进入的肯定不是一个post ,所以写一个else直接进入到上文写的那个html页面中,在该页面提交表单之后,输出用户名

一个简单的 Jwt Demo

最近的项目中使用到了 jwt,网上搜索了不少资料但是大多都流于介绍,并没有具体可用的 demo.抽空写了一个,供大家参考. 关于 Jwt 的介绍可以参考 这里 Demo 下载请点击 这里 ,使用了 .net core 2.2. 下载后解压缩,打开解决方案,运行.效果图如下: 点击 "无权限访问需要权限的 API",弹出 401 窗口.如下: 点击创建 Token,在下面左侧 TextArea 中会返回鉴权信息.如下: 把上一步返回的 Token 信息中的 'token' 这个对应的内容

Java Tread多线程(0)一个简单的多线程实例

作者 : 卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/39341887 本文演示,一个简单的多线程实例,并简单分析一下线程. 编程多线程时,一般步骤: 1)继承Thread函数. 2)覆盖run函数. 注意:1)main函数为主线程,main里面存放的是主线程的执行代码: Demo1为子线程,里面的run函数里面存放的是子线程需要执行的代码:其中,本文中主线程和子线程执行的优先级是一样的. 2)启动线程必须用start()启动,

[stm32] 一个简单的stm32vet6驱动2.4寸240X320的8位并口tft屏DEMO

书接上文: 最近在研究用低速.低RAM的单片机来驱动小LCD或TFT彩屏实现动画效果 首先我用一个16MHz晶振的m0内核的8位单片机nRF51822尝试驱动一个1.77寸的4线SPI屏(128X160), 发现,刷一屏大约要0.8s左右的时间, 具体收录在<1.一个简单的nRF51822驱动的天马4线SPI-1.77寸LCD彩屏DEMO>中 觉得,如果用72MHz的STM32也许效果会好很多 于是在stm32上做了个类似的版本, 具体收录在<一个简单的stm32vet6驱动的天马4线S

一个简单的Webservice的demo,简单模拟服务

前段时间一直在学习WCF,匆匆忙忙的把<WCF全面解析>和<WCF服务编程>看了一遍,好多东西都不是很懂,又听了一下WCF分布式开发的网络教程,算是马马虎虎的明白点了.回顾了一下Webservice,将二者进行比较学习.考虑到以后的发展,当时决定学习WCF,希望自己在不久的将来能将WCF学的稍微精通点吧.这几天又将Webservice看了一遍,回想当时学习Webservice处处碰到坑,由于没人指点,连最基本地点发布都折腾好长时间,只能一点一点的填坑跳坑.这几天闲了,想写一个简单的

利用KBEngine +U3D 做的一个简单MMO手游Demo

利用KBE +U3D 做的一个简单MMO手游Demo目前只完成到一个普通攻击和一个火球术,  火球术需要点击怪物后才能释放.点击npc后会跳到一个副本.里面有一只半兽人. 欢迎大家来试玩 并提出宝贵意见.http://pan.baidu.com/s/1dDtVjnb 感谢kbe 一直以来的帮助.

一个简单的java多线程例子

现在有这样一个任务,有一份手机号列表(20W),有一份话单的列表(10W),要统计哪些手机号没有出现在话单中,哪些手机号在话单中出现了不止一次. 想到的最直接的方式,就是两层循环去遍历,虽然此方法比较笨,但目前还没有想出更好的办法. 一开始使用单线程来处理,代码是随手写的并没有进行重构,只是做一个简单的说明: package tool; import java.util.List; public class SingleThread { public static void main(Strin

一个简单的webservice的demo(下)winform异步调用webservice

绕了一大圈,又开始接触winform的项目来了,虽然很小吧.写一个winform的异步调用webservice的demo,还是简单的. 一个简单的Webservice的demo,简单模拟服务 一个简单的Webservice的demo(中)_前端页面调用 当winform同步调用服务时,由于调用服务不能像C/S那样快,winform的UI进程一直在等待服务的返回结果,就无法响应用户事件.为了解决这种问题,我们用异步调用. 首先,先准备一个模拟用的webservice,如下: 1 using Sys

MAC COCOA一个简单的多线程程序

功能: 实现多线程:2个线程同时工作,一个用时间计数器,一个用来打印信息 STEP1 XCODE ->New Application ->Cocoa中的Command Line 自动增加: #include <CoreFoundation/CoreFoundation.h> STEP2 // // main.c // test_runloop1 // // Created by DMD on 20/6/14. // Copyright (c) 2014 EDU. All right