同步函数和同步代码块的区别:

同步函数的锁是固定的this.

同步代码块的锁是任意的对象。

建议使用同步代码块。
因为同步函数的锁唯一的,只能是this

当同步代码块的锁是this时,可以简写成同步函数。

package day12;

/*
同步函数使用的锁是this;

同步函数和同步代码块的区别:
同步函数的锁是固定的this.

同步代码块的锁是任意的对象。

建议使用同步代码块。
因为同步函数的锁唯一的,只能是this

当同步代码块的锁是this时,可以简写成同步函数。
 */
class Ticket implements Runnable{ //extends Thread{
    private int num = 400;
//    Object obj = new Object();
    boolean flag = true;

    public void run()
    {
        System.out.println("this:"+this);
        if (flag)
            while (true)
            {
                synchronized(this)
                {
                    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 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 SynFunctionLockDemo {

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

        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阅读 7,645评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,677评论 18 399
  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 9,196评论 0 11
  • (写给那些善良,矛盾,为别人而活,过得委屈,不那么开心的妞儿们。) 洗完澡回来,刚好看见qq闪了一下,顺手点开,...
    飞鸟相与还阅读 2,828评论 1 1
  • 是啊!世界离了谁都会转: 天空翱翔的雄鹰 陆地奔跑的小鸡 水里游走的鱼儿 梦: 初开了牙儿 长成了大树 盛开了花儿...
    孤影的派大星阅读 1,702评论 0 1

友情链接更多精彩内容