java多线程实现卖火车票小案例同步代码块优先级守护线程
/***
*
* @author 时光机jay
* @version 1.8
* @since 2020/9/28
*
* */
public class Test33 {
static int a = 100;
public static void main(String[] args) {
// 内部类实现 Runnable 可以多个线程调用
Runnable th = new Runnable() {
@Override
public void run() {
while (true) {
// 同步代码块保证安全
synchronized(this) {
if (a <= 0) {
break;
}
System.out.println(Thread.currentThread().getName()+"卖第" + (a--) + "张票");
}
}
}
};
// 传入 Runnable对象创建Thread线程
Thread th1 = new Thread(th,"甲");
Thread th2 = new Thread(th,"乙");
Thread th3 = new Thread(th,"丙");
// 设置优先级
th1.setPriority(Thread.MAX_PRIORITY);
th2.setPriority(Thread.MIN_PRIORITY);
th3.setPriority(Thread.NORM_PRIORITY);
// 设置丙保护线程
th3.setDaemon(true);
// boolean daemon = th1.isDaemon();
// System.out.println(daemon);
th1.start();
th2.start();
th3.start();
}
}
java多线程实现卖火车票小案例同步代码块优先级守护线程相关推荐
- 编程开发之--java多线程学习总结(2)同步代码块
1.第一种解决办法:同步代码块,关键字synchronized package com.lfy.ThreadsSynchronize;/*** 1.使用同步代码块* 语法:synchronized ( ...
- 第三次学JAVA再学不好就吃翔(part116)--同步代码块
学习笔记,仅供参考,有错必纠 文章目录 多线程 设置线程的优先级 同步代码块 什么情况下需要同步 同步代码块 死锁 多线程 设置线程的优先级 设置线程优先级: package com.guiyang. ...
- 黑马毕向东Java课程笔记(day11):多线程(第一部分)——进程与线程+线程创建+线程安全与同步代码块+同步锁/死锁
多线程好文:添加链接描述 锁机制:synchronized.Lock.Condition.volatile(原子性可见性)--参考添加链接描述 1.进程与线程概述 首先,对于CPU执行每一个程序, ...
- 基本线程同步(五)使用Lock同步代码块
声明:本文是< Java 7 Concurrency Cookbook >的第二章,作者: Javier Fernández González 译者:许巧辉 校对:方腾飞 使用Lo ...
- 同步代码块Synchronized笔记
什么是同步代码块(Synchronized Block) 同步代码块简单来说就是将一段代码用一把锁给锁起来, 只有获得了这把锁的线程才访问, 并且同一时刻, 只有一个线程能持有这把锁, 这样就保证了同 ...
- java多线程,卖票案例
目录 卖票案例 测试代码 代码1 代码2,卖票问题的思考 代码3 代码4 代码5 卖票案例 测试代码 package com.itheima_06;/*需求:某电影院目前正在上映国产大片,共有100张 ...
- Java20-day11【实现多线程(进程、线程-调度-控制-生命周期)、线程同步(同步代码块、线程安全、Lock)、生产者消费者(模式概述、案例)】
视频+资料[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] Java基础--学习笔记(零起点打开java世界的大门)--博 ...
- java同步方法完成案例_Java同步代码块和同步方法原理与应用案例详解
本文实例讲述了java同步代码块和同步方法.分享给大家供大家参考,具体如下: 一 点睛 所谓原子性WOmoad:一段代码要么执行,要么不执行,不存在执行一部分被中断的情况.言外之意是这段代码就像原子一 ...
- Java多线程安全问题解决的两种方式代码案例
需求:用三个线程模拟三个售票窗口,共同卖100张火车票,每个线程打印出卖第几张票. 多线程安全问题 需求:用三个线程模拟三个售票窗口,共同卖100张火车票,每个线程打印出卖第几张票. 模拟安全问题 p ...
最新文章
- Java内存分配原理
- C# StreamReader类和StreamWriter类
- 带参数标签的取值方法
- 通用的类-可直接存储的Dictionary,可以被JSON或NSUserDefaults
- Danfo.js专题 - Danfo.js与Dnotebook简介与入门
- sql数据库与c#的null的不同
- 在PHP网页中显示MySQL数据库内容
- 计算机管理 网络连接服务,WZC服务未开启无法连接网络 解决方法及步骤
- python语法错误检查_如何检查python的语法正确性
- Ajax 请求的http头信息特点 x-requested-with
- UDID 和 UUID 的问题
- 微信将迎来重大更新:绑定银行卡的用户请注意
- 程序员面试之九阴真经
- 怎么把文字转换成朗读,快来看这几款文字转语音朗读工具
- UCenter 1.6 数据字典
- html5语义化标签及优点
- 软件泛指计算机运行,广义地讲,软件泛指计算机运行所需的各种数据、及与之相关的文档资料...
- 1-17 Set集合和Map集合
- [转]	 世界上排名前100的英文歌—终于找全了
- 51nod 1213 二维曼哈顿距离最小生成树 树状数组+最小生成树