Java之多线程AtomicInteger (多人买票) -yellowcong
来源:互联网 发布:机械结构优化设计 编辑:程序博客网 时间:2024/05/17 06:33
前几天,通过Thread的同步代码块的方式,写了买票的案例,现在通过AtomicInteger这个类,实现了买票的案例,通过这个类,效率比 通过Thread的同步方法效率高,写多线程的时候,一定要先获取到剩余多少张票,然后做加减法,不然会导致负数票的参生
代码
代码部分是通过实现Runnable接口,通过多个Thread调用多线程,TicketThread在构造函数中,传入票数,调用AtomicInteger完成同步操作
package com.yellowcong.thread.demo;import java.util.concurrent.atomic.AtomicInteger;/** * 创建日期:2017年10月5日 <br/> * 创建用户:yellowcong <br/> * 功能描述: */public class TicketThread implements Runnable { private AtomicInteger count ; public TicketThread(Integer count) { super(); this.count =new AtomicInteger(count); } public void run() { // TODO Auto-generated method stub while (true) { int cnt = count.get(); if(cnt >0){ count.decrementAndGet(); System.out.println(Thread.currentThread().getName() + "买票,还剩" + cnt); }else { Thread.currentThread().stop(); } try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String[] args) { TicketThread th = new TicketThread(100); new Thread(th,"买票员1").start(); new Thread(th,"买票员2").start(); new Thread(th,"买票员3").start(); new Thread(th,"买票员4").start(); }}
阅读全文
0 0
- Java之多线程AtomicInteger (多人买票) -yellowcong
- Java之多线程死锁-yellowcong
- Java之多线程Runnable(1)卖票-yellowcong
- Java之多线程CountDownLatch 用法 -yellowcong
- Java之多线程Runnable(2)卖烤鸭-yellowcong
- Java线程模仿电影院买票
- Java之多线程(一)
- JAVA之多线程(一)
- JAVA之多线程(二)
- JAVA之多线程(三)
- Java之多线程(一)
- Java之多线程(二)
- JAVA之多线程(二)
- java 线程原子问题 AtomicInteger
- Java线程之三 AtomicInteger
- Java中的线程(十一)- AtomicInteger的用法
- 【Java】Java之多线程
- Practical Java(重点版)之多线程
- 大型网站CAP理论和BASE模型
- ERROR 2003 (HY000):Can't connect to MySQL server on 'localhost' (10060)
- python 手记4 〖笨方法学python习题19〗
- 设置树莓派键盘布局错乱
- Halcon标定方式Camera_calibration()摄像机标定(函数详解)
- Java之多线程AtomicInteger (多人买票) -yellowcong
- hihocoder 1067(最近公共祖先tarjin)
- LeetCode
- 解决ssh登录,找不到匹配的host key算法
- 数据库读取指定数组集
- Flask-migrate
- Mysql系列——数据库运维(1)——数据库版本介绍及安装-bin
- poj2385 Apple Catching
- HDU 4773 反演变换