首页 > 其他 > 详细

传统Synchronized锁

时间:2021-05-03 10:43:33      阅读:34      评论:0      收藏:0      [点我收藏+]

Synchronized

public class Test01 {
    /*真正的多线程开发,公司中的开发。
    线程就是一个单独的资源类,没有任何附属的操作!
    */
    public static void main(String[] args) {
        //并发;多线程操作同一个资源类,把资源类丢入线程
        Ticket ticket = new Ticket();
        //函数式接口,jdk1.8 Lambda:表达式(参数)->(代码}
        new Thread(()->{
            for (int i = 0; i < 60; i++) {
                ticket.sale();
            }
        },"A").start();
        new Thread(()->{
            for (int i = 0; i < 60; i++) {
                ticket.sale();
            }
        },"B").start();
        new Thread(()->{
            for (int i = 0; i < 60; i++) {
                ticket.sale();
            }
        },"C").start();

    }
}

//资源类
class Ticket{
    //属性、方法
    private int number=50;
    public synchronized void sale(){
        if(number>0){
            System.out.println(Thread.currentThread().getName()+"卖出了第:"+(number--)+"票,剩余:"+number);
        }
    }
}

传统Synchronized锁

原文:https://www.cnblogs.com/saxonsong/p/14727022.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!