首页 > 其他 > 详细

使用Synchronized锁——锁住方

时间:2020-11-12 23:35:03      阅读:27      评论:0      收藏:0      [点我收藏+]
public class Test01 {

    public static void main(String[] args) {

        //同一个资源
Ticket ticket = new Ticket();

        //三个代理
new Thread(ticket, "li").start();
        new Thread(ticket, "w").start();
        new Thread(ticket, "h").start();
    }
}


    class Ticket implements Runnable {
        public int tickets = 10;
        boolean flag=true;


        @Override
        public void run() {
            while (flag) {
                test();
            }


        }
          //加了synchronized锁后,线程同步、安全了,原理:它锁住了ticket的资源(ticketsflag这两个资源)
//最好把对象的资源都锁了
public  synchronized void test(){
            if(tickets<=0){
                flag=false;
                return;//直接返回给test(),不再执行后面的代码



            }
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            System.out.println(Thread.currentThread().getName()+"--->"+tickets--);

        }


    }

 

 

关键——最好把一个对象的资源都锁了

来源:网站推广排名

使用Synchronized锁——锁住方

原文:https://www.cnblogs.com/0591jb/p/13966657.html

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