/***
 * 
 * @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多线程实现卖火车票小案例同步代码块优先级守护线程相关推荐

  1. 编程开发之--java多线程学习总结(2)同步代码块

    1.第一种解决办法:同步代码块,关键字synchronized package com.lfy.ThreadsSynchronize;/*** 1.使用同步代码块* 语法:synchronized ( ...

  2. 第三次学JAVA再学不好就吃翔(part116)--同步代码块

    学习笔记,仅供参考,有错必纠 文章目录 多线程 设置线程的优先级 同步代码块 什么情况下需要同步 同步代码块 死锁 多线程 设置线程的优先级 设置线程优先级: package com.guiyang. ...

  3. 黑马毕向东Java课程笔记(day11):多线程(第一部分)——进程与线程+线程创建+线程安全与同步代码块+同步锁/死锁

    多线程好文:添加链接描述 锁机制:synchronized.Lock.Condition.volatile(原子性可见性)--参考添加链接描述 1.进程与线程概述   首先,对于CPU执行每一个程序, ...

  4. 基本线程同步(五)使用Lock同步代码块

    声明:本文是< Java 7 Concurrency Cookbook >的第二章,作者: Javier Fernández González     译者:许巧辉 校对:方腾飞 使用Lo ...

  5. 同步代码块Synchronized笔记

    什么是同步代码块(Synchronized Block) 同步代码块简单来说就是将一段代码用一把锁给锁起来, 只有获得了这把锁的线程才访问, 并且同一时刻, 只有一个线程能持有这把锁, 这样就保证了同 ...

  6. java多线程,卖票案例

    目录 卖票案例 测试代码 代码1 代码2,卖票问题的思考 代码3 代码4 代码5 卖票案例 测试代码 package com.itheima_06;/*需求:某电影院目前正在上映国产大片,共有100张 ...

  7. Java20-day11【实现多线程(进程、线程-调度-控制-生命周期)、线程同步(同步代码块、线程安全、Lock)、生产者消费者(模式概述、案例)】

    视频+资料[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java世界的大门)--博 ...

  8. java同步方法完成案例_Java同步代码块和同步方法原理与应用案例详解

    本文实例讲述了java同步代码块和同步方法.分享给大家供大家参考,具体如下: 一 点睛 所谓原子性WOmoad:一段代码要么执行,要么不执行,不存在执行一部分被中断的情况.言外之意是这段代码就像原子一 ...

  9. Java多线程安全问题解决的两种方式代码案例

    需求:用三个线程模拟三个售票窗口,共同卖100张火车票,每个线程打印出卖第几张票. 多线程安全问题 需求:用三个线程模拟三个售票窗口,共同卖100张火车票,每个线程打印出卖第几张票. 模拟安全问题 p ...

最新文章

  1. Java内存分配原理
  2. C# StreamReader类和StreamWriter类
  3. 带参数标签的取值方法
  4. 通用的类-可直接存储的Dictionary,可以被JSON或NSUserDefaults
  5. Danfo.js专题 - Danfo.js与Dnotebook简介与入门
  6. sql数据库与c#的null的不同
  7. 在PHP网页中显示MySQL数据库内容
  8. 计算机管理 网络连接服务,WZC服务未开启无法连接网络 解决方法及步骤
  9. python语法错误检查_如何检查python的语法正确性
  10. Ajax 请求的http头信息特点 x-requested-with
  11. UDID 和 UUID 的问题
  12. 微信将迎来重大更新:绑定银行卡的用户请注意
  13. 程序员面试之九阴真经
  14. 怎么把文字转换成朗读,快来看这几款文字转语音朗读工具
  15. UCenter 1.6 数据字典
  16. html5语义化标签及优点
  17. 软件泛指计算机运行,广义地讲,软件泛指计算机运行所需的各种数据、及与之相关的文档资料...
  18. 1-17 Set集合和Map集合
  19. [转] 世界上排名前100的英文歌—终于找全了
  20. 51nod 1213 二维曼哈顿距离最小生成树 树状数组+最小生成树

热门文章

  1. 美股日志|三大股票指数升金价重上1800
  2. 密码加密技术(MD5)
  3. 苹果企业签名证书制作详解
  4. React的React.FC与React.Component的初步认识
  5. 惠普惠特曼:联想收买IBM效劳器将令惠普获益
  6. mysql 微信 jsp_SpringMVC+Spring+mybatis+mysql+jsp微信商城系统,有后台管理系统
  7. 计算机二级C语言100套题
  8. 无法启动计算机的病毒是,电脑中毒无法启动 卡巴斯基可解决危难
  9. 微信小程序优惠券样式
  10. BZOJ2844-albus就是要第一个出场