多线程卖票问题

 

public class Ticket {private int number =30;public  void sale(){if(number > 0){System.out.println(Thread.currentThread().getName() + "卖出了" +(number--) + "票,剩余:" + number);}}public static void main(String[] args) {Ticket ticket =  new Ticket();new Thread(()->{for (int i = 0; i < 40; i++) {ticket.sale();}},"A").start();new Thread(()->{for (int i = 0; i < 40; i++) {ticket.sale();}},"B").start();new Thread(()->{for (int i = 0; i < 40; i++) {ticket.sale();}},"C").start();}
}

 

 

执行结果:

可以看出多线程情况下,数据是不正确的

 

 

 

传统做法

加上synchronized关键字

加上synchronized关键字看下执行结果,可以看到是有序的

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269829.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows server 2003R2\2008R2\2012\2016 安装【故障转移群集】cluster

温故而知新&#xff01; 靠&#xff0c;突然觉得it技能只要一年的时间就能忘记&#xff01; virtualbox虚拟机安装群集&#xff0c;注意点&#xff1a; clone的虚拟机&#xff0c;sid问题。sysprep太慢了&#xff0c;不如重新安装快&#xff01;虚拟机增强组件&#xff0c;会影…

oracle数据库主键自增序列_oracle数据库ID自增长--序列

什么是序列&#xff1f;在mysql中有一个主键自动增长的id&#xff0c;例如&#xff1a;uid number primary key auto_increment;在oracle中序列就是类似于主键自动增长&#xff0c;两者功能是一样的&#xff0c;只是叫法不同而已。在oracle中想要实现id自动增长只能用序列来实现…

MYSQL的函数有哪些?(4.1时间与日期函数)

一。首先介绍一下时间及日期函数 日期和时间函数主要用来处理日期和时间的值&#xff0c;一般的日期函数除了使用 DATE 类型的参数外&#xff0c;也可以使用DATETIME 或 TIMESTAMP 类型的参数&#xff0c;只是忽略了这些类型值的时间部分。类似的情况还有以 TIME 类型为参数的…

在配置静态IP的时候遇到 :bringing up interface eth0 : error unknown connection

首先这是动态ip配置成功的结果 接下来切换到root用户来配置静态的 按照静态ip的配置方法配置好文件后&#xff08;具体过程这里就不多加说明&#xff09; 然后保存退出 当我们重启网卡的时候问题来了&#xff08;因为本人有点强迫症&#xff0c;多次重启了&#xff0c;结果还是…

python信息找人的算法_算法篇-python查找算法

上一篇的递归算法中&#xff0c;了解到算法的复杂度。递归就是在函数中调用本身。在汉诺塔游戏例子中&#xff0c;如果你需要移动的盘子很多时&#xff0c;程序运行就会消耗很长时间来计算结果。可以回顾下 —>算法篇-python递归算法用递归打印斐波那契数列&#xff0c;你会…

MYSQL的函数有哪些?(4.2时间与日期函数)

二。时间与日期函数的type取值 type 值 代表的实际时间 MICROSECOND 微秒数 SECOND 秒数 MINUTE 分钟数 HOUR 小时数 DAY 天数 WEEK 周数 MONTH 月数 QUARTER 季度数 YEAR 年数 type 值 代表的实际时间 SECOND_MICROSECOND ‘秒数 . 微秒数’ …

解决java.net.ConnectException: Connection refused:connect报错

解决java.net.ConnectException: Connection refused:connect报错 2. 原因和解决&#xff1a; 1&#xff09;端口号被占用&#xff1a;杀死占用端口号&#xff08;一般为8080&#xff09;的进程&#xff0c;释放端口&#xff1b;彻底关闭 Tomcat 服务器&#xff0c;或者重新启…

discuz修改用户uid_你知道Linux中的UID和GID的含义吗

你知道Linux中的UID和GID的含义吗是不是大家看到UID(user id)和GID(group id)&#xff0c;都会立马说不就是用户和用户组ID。但是。当我们登陆Linux系统时&#xff0c;输入自己的用户名和密码&#xff0c;这里其实Linux系统并不认识你的用户名(或者换一种说法&#xff0c;不是依…

linux5种IO模型以及同步异步,阻塞非阻塞

同步&#xff08;synchronous&#xff09; IO和异步&#xff08;asynchronous&#xff09; IO&#xff0c;阻塞&#xff08;blocking&#xff09; IO和非阻塞&#xff08;non-blocking&#xff09;IO分别是什么&#xff0c;到底有什么区别&#xff1f;这个问题其实不同的人给出…

MYSQL的函数有哪些?(4.3时间与日期函数)

一。时间与日期函数的格式说明符 格式说明符 描述说明 %a 一星期中每天名称的缩写&#xff08;Sun...Sat&#xff09; %b 月份的缩写&#xff08;Jan...Dec&#xff09; %c 月份的数字表现形式&#xff08;0...12&#xff09; %D 带有英语后缀的一个月中的每一天的…

根据图片地址得到文件流

/*** 得到文件流** param url 图片地址* return*/public static byte[] getFileStream(String url) {try {URL httpUrl new URL(url);HttpURLConnection conn (HttpURLConnection) httpUrl.openConnection();conn.setRequestMethod("GET");conn.setConnectTimeout(…

MYSQL中最基础的的聚合函数(重点!)

一。聚合函数的介绍 在数据库查询过程中&#xff0c;不仅只返回数据的基础信息&#xff0c;有时还需对这些数据进行统计和汇总。MySQL 提供了聚合函数&#xff0c;用于实现这些高级功能。 二。聚合函数的基础运用 聚合函数用于对一组值进行计算并返回一个汇总值&#xff0c;…

商品尺码规格和颜色需要支持双引号

商品尺码规格和颜色需要支持双引号 商品尺码规格和颜色既然要支持双引号&#xff0c;不得不佩服这个需求&#xff1b; 如果支持英文双引号 就会是 "color":""red"" 导致前端获取不到颜色&#xff0c;但是中文状态下是没有问题的 只能将英文转换…

EasyExcel导入的时候报错Caused by: java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/File

今天用EasyExcel导入的时候报错&#xff0c;如下 com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/FileMagic at com.alibaba.excel.analysis.ExcelAnalyserImpl.<init>(ExcelAnalyserImpl.java…

MYSQL中最基础的的聚合函数(avg求平均值及count求和)

一。avg函数 1.性质及作用&#xff1a;avg(column) 用于返回数字型字段 column 的平均值&#xff0c;注意&#xff1a;列值为 null 的字段不参与运算。 2.如何运用 实例&#xff1a;1.获取线路里程的平均值。 2.获取公交二公司所属线路的平均里程数。 二。count函数 1.性质…

geo数据差异分析_使用GEO数据库来筛选差异表达基因,KOBAS进行KEGG注释分析

前言本文主要演示GEO数据库的一些工具&#xff0c;使用的数据是2015年在Nature Communications上发表的文章Regulation of autophagy and the ubiquitin-proteasome system by the FoxO transcriptional network during muscle atrophy.[pubmed:25858807]作者通过将FoxO1-3-4-f…

分组查询 group by 子句及order by子句

一。group by的实际意义 使用 group by 子句可以将数据划分到不同的组中&#xff0c;实现对记录的分组查询。group by 从英文字面的意义上可以理解为“根据&#xff08;by&#xff09;一定的规则进行分组&#xff08;group&#xff09;”&#xff0c;该子句的作用是通过一定的…

GIT入门笔记(18)- 标签创建和管理

git tag <name>用于新建一个标签&#xff0c;默认为HEAD&#xff0c;也可以指定一个commit id&#xff1b; git tag -a <tagname> -m "blablabla..."可以指定标签信息&#xff1b; git tag可以查看所有标签 git show <tagname>可查看tag说明信息…