您现在的位置是:主页 > news > 做网站租用数据库/seo外包 杭州

做网站租用数据库/seo外包 杭州

admin2025/5/14 18:26:15news

简介做网站租用数据库,seo外包 杭州,长沙好的网站建设公司排名,优化工具箱下载如果面试问道 synchronized 和 ReentrantLock 有什么区别?有人说 synchronized 最慢,这话靠谱吗? 你会如何回答呢? 我的回答 synchronized 是 Java 内建的同步机制,所以也有人称其为 Intrinsic Locking,它提供了互斥的语义和可见性,当一个线程已经获取当前锁时,其他试…

做网站租用数据库,seo外包 杭州,长沙好的网站建设公司排名,优化工具箱下载如果面试问道 synchronized 和 ReentrantLock 有什么区别?有人说 synchronized 最慢,这话靠谱吗? 你会如何回答呢? 我的回答 synchronized 是 Java 内建的同步机制,所以也有人称其为 Intrinsic Locking,它提供了互斥的语义和可见性,当一个线程已经获取当前锁时,其他试…

如果面试问道

synchronized 和 ReentrantLock 有什么区别?有人说 synchronized 最慢,这话靠谱吗?

你会如何回答呢?

我的回答

synchronized 是 Java 内建的同步机制,所以也有人称其为 Intrinsic Locking,它提供了互斥的语义和可见性,当一个线程已经获取当前锁时,其他试图获取的线程只能等待或者阻塞在那里。

在 Java 5 以前,synchronized 是仅有的同步手段,在代码中, synchronized 可以用来修饰方法,也可以使用在特定的代码块儿上,本质上 synchronized 方法等同于把方法全部语句用 synchronized 块包起来。

ReentrantLock,通常翻译为再入锁,是 Java 5 提供的锁实现,它的语义和 synchronized 基本相同。再入锁通过代码直接调用 lock() 方法获取,代码书写也更加灵活。与此同时,ReentrantLock 提供了很多实用的方法,能够实现很多 synchronized 无法做到的细节控制,比如可以控制 fairness,也就是公平性,或者利用定义条件等。但是,编码中也需要注意,必须要明确调用 unlock() 方法释放,不然就会一直持有该锁。

synchronized 和 ReentrantLock 的性能不能一概而论,早期版本 synchronized 在很多场景下性能相差较大,在后续版本进行了较多改进,在低竞争场景中表现可能优于 ReentrantLock。</