JAVAday25(多线程下)

本文探讨了Java中多线程的同步问题,分析了同步代码块和同步方法的锁对象,指出静态同步方法的锁对象为类字节码文件。同时,介绍了Lock接口及ReentrantLock的使用,强调了Lock提供的加锁和解锁的显式控制,提高了代码的可读性和灵活性。
摘要由CSDN通过智能技术生成

 同步的好处:
            解决了多线程的安全问题。

 同步的弊端:
           加了一个同步代码块后,就相当于加了一把锁,每次进入同步代码块的时候都会去判断一下
           无形之中,降低了我们执行效率。

1、同步代码块上的锁对象是什么呢?
      任意对象,但是需要注意的是,多个线程之间的锁对象要一样。
2、同步方法呢?
      将synchronized关键字放在方法的定义上
      同步方法的锁对象是this

3、静态的同步方法的锁对象是谁呢?
      class文件对象,是线程类的字节码文件对象,其他的字节码文件对象不行
  解决同步安全问题的第二种解法:加Lock锁
    在此之前我们解决线程同步安全问题的时候,都是使用synchronized关键字
    ,将需要被包裹的代码给包起来,但是,我们并没有实际看到在哪里上了锁,
    又或是在哪里释放了锁,让其他线程获取到锁对象,执行线程。m
     Lock(接口)
        具体的子类:Class ReentrantLock
            lock() 加锁
            unlock() 释放锁
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值