C/C++教程

传统Synchronized锁

本文主要是介绍传统Synchronized锁,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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锁的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!