线程间共享数据例子--售票/退票
来源:互联网 发布:dnf银月技能数据 编辑:程序博客网 时间:2024/04/29 11:42
IT程序员开发必备-各类资源下载清单,史上最全IT资源,个人收藏总结!
例子程序:
package edu.review;import java.util.Random;/** * 题目要求: * 两个售票窗口,对某一趟列车票进行操作,一个为售票窗口,一个为退票窗口,每个窗口售/退票100张 **/public class Thread2ThreadDataShare {public static void main(String[] args) {// 方式1();//两种方式是等效的方式2();}public static void 方式1(){final DataShare data1 = new DataShare();new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < 100; i++) {try {Thread.sleep(new Random().nextInt(20));} catch (InterruptedException e) {e.printStackTrace();}data1.increment();}}}).start();new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < 100; i++) {try {Thread.sleep(new Random().nextInt(20));} catch (InterruptedException e) {e.printStackTrace();}data1.decrement();}}}).start();}public static void 方式2(){DataShare data2 = new DataShare();IncRunnable incRunnable = new IncRunnable(data2);DecRunnable decRunnable = new DecRunnable(data2);new Thread(incRunnable).start();new Thread(decRunnable).start();}static class IncRunnable implements Runnable{DataShare data = new DataShare();public IncRunnable(DataShare data){this.data = data;}@Overridepublic void run() {for (int i = 0; i < 100; i++) {try {Thread.sleep(new Random().nextInt(20));} catch (InterruptedException e) {e.printStackTrace();}data.increment();}}}static class DecRunnable implements Runnable{DataShare data = new DataShare();public DecRunnable(DataShare data){this.data = data;}@Overridepublic void run() {for (int i = 0; i < 100; i++) {try {Thread.sleep(new Random().nextInt(20));} catch (InterruptedException e) {e.printStackTrace();}data.decrement();}}}}class DataShare{private int ticket = 100;public synchronized void increment(){ticket++;System.out.println(Thread.currentThread().getName()+"退票,当前剩"+ticket+"张票!");}public synchronized void decrement(){ticket--;System.out.println(Thread.currentThread().getName()+"售票,当前剩"+ticket+"张票!");}}
- 线程间共享数据例子--售票/退票
- 线程间共享数据的一个例子
- Java多线程——出售票(线程同步,数据共享)
- Java_线程—经典的例子:售票
- 线程间共享数据
- 线程间数据共享
- 线程间数据共享
- 设置线程间共享数据
- 线程间的数据共享
- Qt线程间共享数据
- 客运综合管理系统项目—售票管理(退票)
- 航空售票例子之服务器端的线程设计
- java多线程-售票例子-创建线程-实现Runnable接口
- 线程管理以及线程间数据共享
- 退票
- ContentProvider数据共享例子
- 共享内存例子-线程通信
- 多线程售票例子
- js 小结1
- 第十六节 java学习 while语句
- Cocos2d-x跨Android&iOS平台开发入门
- windows批处理文件写法
- 输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点
- 线程间共享数据例子--售票/退票
- ios 之UISearchBar隐藏虚拟键盘几种方法
- 嵌入式的文件系统
- Ubuntu下LAMP详细配置手册
- 35
- i++和++i的区别
- 36
- putty一闪而过啊~
- maven——Myeclipse下通过maven管理项目