博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java多线程卖票问题。
阅读量:3524 次
发布时间:2019-05-20

本文共 782 字,大约阅读时间需要 2 分钟。

package 卖车票程序;/* * 多线程,cpu来回切换运行程序,就会导致一个问题的出现,一个线程卖票一张刚卖出去还没减一,cpu又切换到另一个线程去了, * 会导致这个线程以没减的票为总数开始卖。*/import 课后作业.test1;public class TestCpiao extends Thread {public static int chepiao = 100;// 加static所有对象共享100站票public static String aa = new String("1");//aa也要设置成静态的。这样才能为公共的,如果aa不是公共的,那么线程就不存在抢了。字符串随意定义定义在函数边//synchronized的作用是 让他管辖的代码部分,要么全部执行完,要么全部不执行public void run() {//synchronized修饰函数不需要字符串,相当于默认thiswhile (true) {synchronized (aa) {//即可以修饰代码块又可以修饰函数if (chepiao > 0) {System.out.println("第" + Thread.currentThread().getName()+ "车站在卖第" + (101 - chepiao) + "张车票");--chepiao;} else {break;}}}}public static void main(String[] args) throws InterruptedException {TestCpiao testCpiao = new TestCpiao();testCpiao.start();TestCpiao testCpiao2 = new TestCpiao();testCpiao2.start();}}

转载地址:http://qlrqj.baihongyu.com/

你可能感兴趣的文章
Python练习小程序1
查看>>
pytorch用于多标签分类的bceloss
查看>>
C++程序设计:打印杨辉三角形
查看>>
C# 方法内改变参数的引用 不影响方法外的值
查看>>
C# vs2019 智能提示中文突然变成英文
查看>>
linux开机引导和启动过程(详细)(含配置文件解读)
查看>>
Vue学习笔记——常见简写&修饰符
查看>>
vue-element-admin源码解读——项目启动过程
查看>>
zcmu 1577 食堂的蛋饼(思维)
查看>>
zcmu 1796 wjw的数学题 (唯一分解定理+排列组合)
查看>>
hdu 4135 Co-prime(分解质因数+容斥定理)
查看>>
hdu 4407 Sum(分解质因数+容斥定理)
查看>>
HihoCoder - 1631 Cats and Fish(思维)
查看>>
HihoCoder - 1632 Secret Poems(规律题)
查看>>
zcmu 1900: Problem D: Dominos(单向并查集)
查看>>
zcmu 1059: 田忌赛马(贪心)
查看>>
zcmu 4944: 字符串处理
查看>>
浙江中医药大学2018级新生程序设计竞赛题解
查看>>
zcmu-新生宝贝们的第四次试水题解
查看>>
线段树详解(单点修改+区间修改和查询)
查看>>