静态函数使用的锁是 该函数所属的字节码文件对象

静态的同步函数使用的锁是 该函数所属的字节码文件对象 可以用 getClass方法获取,
也可以用当前 类名.class表示。

package day12;

/*
静态的同步函数使用的锁是 该函数所属的字节码文件对象 可以用 getClass方法获取,
也可以用当前 类名.class表示。
 */
class Ticket implements Runnable{ //extends Thread{
    private static int num = 100;
    //    Object obj = new Object();
    boolean flag = true;

    public void run()
    {
        System.out.println("this:"+this.getClass());
        if (flag)
            while (true)
            {
                synchronized(Ticket.class)//(this.getClass())
                {
                    if(num>0){
                        try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); }
                        System.out.println(Thread.currentThread().getName()+"...obj..."+num--);
                    }
                }
            }
        else
            while (true)
                show();
    }

    public static synchronized void show(){
        if(num>0){
            try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); }
            System.out.println(Thread.currentThread().getName()+"...function..."+num--);
        }
    }
}

public class StaticSynFunctionLockDemo {

    public static void main(String[] args) {
        Ticket t = new Ticket();//创建一个线程任务对象。

        Class clazz = t.getClass();

//        Class clazz = Ticket.class;
//        System.out.println("t:"+t.getClass());

        Thread t1 = new Thread(t);
        Thread t2 = new Thread(t);

        t1.start();
        try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); }
        t.flag = false;
        t2.start();
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,812评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,719评论 18 399
  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,897评论 0 11
  • Java多线程学习 [-] 一扩展javalangThread类 二实现javalangRunnable接口 三T...
    影驰阅读 3,108评论 1 18
  • 今天黑大的同学来我们学校给他对象表白,两个人在一起一个月了这次补一个正式的表白,我帮忙点蜡烛了,有雪,有玫瑰,有蜡...
    芒果E阅读 167评论 0 0

友情链接更多精彩内容