美文网首页
多线程之_互斥锁

多线程之_互斥锁

作者: 让你变好的过程从来都不会很舒服 | 来源:发表于2021-08-02 21:08 被阅读0次

基本介绍

1、Java语言中、引入了对象互斥锁的概念、来保证共享数据操作的完整性
2、每个对象都对应于一个可称为“互斥锁”的标记、这个标记用来保证在任一时刻,只能有一个线程访问该对象。
3、关键字synchronized来与对象的互斥锁联系、当某个对象用synchronized修饰的时候、表明该对象在任一时刻只能由一个线程访问。
4、同步的局限性:导致程序的执行效率要降低。
5、同步方法(非静态的)的锁可以是this,也可以是其他对象(要求是同一个对象)
6、同步方法(静态的)的锁应当是类本身

class SellTicket08{
    public static void sell(){
        synchronized(SellTicket08.class){ --- 静态的锁是类本身,this不行
            System.out.println("代码块");
        }
    } 
}

注意事项和细节

1、同步方法如果没有使用static修饰:默认锁对象为this
2、如果方法使用static修饰:默认对象为当前类.class
3、实现的落地步骤

需要先分析上锁的代码
选择同步代码块或同步方法,范围能越小则越好,毕竟影响效率
要求多个线程的锁对象为同一个即可!

相关文章

网友评论

      本文标题:多线程之_互斥锁

      本文链接:https://www.haomeiwen.com/subject/usmrvltx.html