当前位置: 首页 > news >正文

如何wordpress建站潍坊建站模板搭建

如何wordpress建站,潍坊建站模板搭建,织梦网站程序安装教程,泰州网站建设推广Synchronized和ReentrantLock在Java中都是用来控制并发访问共享资源的机制#xff0c;但它们在获取释放锁的方式、锁的特性以及锁的实现级别等方面存在一些差异。 锁的特性 synchronized是Java的关键字#xff0c;可以隐式地获取和释放锁。synchronized关键字通过内置的锁机…Synchronized和ReentrantLock在Java中都是用来控制并发访问共享资源的机制但它们在获取释放锁的方式、锁的特性以及锁的实现级别等方面存在一些差异。 锁的特性 synchronized是Java的关键字可以隐式地获取和释放锁。synchronized关键字通过内置的锁机制来控制对共享资源的并发访问确保每次只有一个线程能够执行被synchronized保护的代码区域。在Java对象头中有关于锁的信息当一个线程试图获取一个对象的锁时JVM会进行相应的内存布局调整和优化以确保线程安全。 ReentrantLock支持公平锁即等待时间最长的线程会优先获得锁而synchronized则默认情况下是不公平的。当线程进入synchronized修饰的代码块时JVM会自动给对象加锁离开时自动解锁。而ReentrantLock需要开发者手动调用lock()和unlock()方法来获取和释放锁。 synchronized典型代码 synchronized (ClassName.class) {}而可重入锁为保证锁释放每一个 lock() 动作我建议都立即对应一个 try-catch-finally典型的代码结构如下 ReentrantLock fairLock new ReentrantLock(true); fairLock.lock(); try {// do something } finally {fairLock.unlock(); } ReentrantLock 是一个功能强大且灵活的同步工具适用于那些需要高度细粒度控制的同步控制的场景。ReentrantLock提供一些api来更好的进行控制 尝试锁定 你可以使用 tryLock() 方法尝试立即获取锁如果锁不可用它将返回 false if (lock.tryLock()) {try {// ... 执行线程安全的操作 ...} finally {lock.unlock();} } else {// 未能获取锁采取其他措施... } 还可以指定最长等待时间 try {if (lock.tryLock(5, TimeUnit.SECONDS)) {try {// ... 执行线程安全的操作 ...} finally {lock.unlock();}} else {// 在指定时间内未获得锁} } catch (InterruptedException e) {// 当前线程在等待过程中被中断 } 条件变量 使用 newCondition() 方法可以创建与 ReentrantLock 关联的 Condition 实例条件变量允许线程在不满足特定条件时等待并在其他线程改变状态后被唤醒 import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;public class ConditionDemo {private Lock lock new ReentrantLock();private Condition condition lock.newCondition();public void method1() {try {lock.lock();while (true) {// 等待条件满足condition.await();// 处理业务逻辑System.out.println(method1 is running);}} catch (InterruptedException e) {e.printStackTrace();} finally {lock.unlock();}}public void method2() {try {lock.lock();// 改变条件状态condition.signalAll();} finally {lock.unlock();}} } 在这个示例中我们创建了一个 Lock 和一个 Condition 对象。method1() 方法中使用了 while 循环来不断检查条件是否满足如果条件不满足就调用 condition.await() 方法让当前线程等待。当条件满足时线程会被唤醒并继续执行。method2() 方法中改变了条件状态并调用 condition.signalAll() 方法通知所有正在等待的线程。 抉择 选择synchronized还是ReentrantLock通常取决于以下因素 简单性 vs. 灵活性如果你需要简单的线程安全并且不介意使用JVM内置的锁机制那么synchronized可能是一个好选择。如果你需要超时、可中断的锁或者公平性保证那么ReentrantLock是更好的选择。 性能考虑在高竞争的环境下ReentrantLock通常比synchronized表现更好尤其是它的公平锁模式可以减少线程唤醒的开销。 功能需求如果需要条件变量、尝试非阻塞地获取锁或绑定多个条件ReentrantLock提供了这些功能而synchronized则没有。 错误检查使用ReentrantLock时如果忘记释放锁可能会导致死锁。synchronized则由JVM管理不容易出现这种问题。
http://www.pierceye.com/news/665666/

相关文章:

  • 建设银行网银网站激活个人简历模板电子版可填写
  • 肃州区建设局网站宁夏百度seo
  • 关于做电影的网站设计西安网站建设制作 熊掌号
  • idc网站建设怎么自己做一个网页链接
  • 网站开发安全模块方案个人网站搭建软件
  • 重庆建设招标造价信息网站个人网站建设与维护
  • 网站备案用户名忘了怎么办嘉兴做外贸网站的公司
  • 1688网站的特点网站制作器手机版下载
  • 兖州网站开发做一个中英文网站多少钱
  • wordpress怎么做网盘站好看的页面图片
  • 建设网站深圳罗湖安徽合肥做网站
  • 一级a做爰片免费网站下载网站快慢由什么决定
  • 网页设计与网站建设 郑州大学网络购物网站备案
  • 美观网站建设哪家好优化大师最新版下载
  • 外贸品牌网站制作wordpress 微信主题
  • 旅游网站开发需求分析网站的根目录的路径
  • easyUI网站开发docker wordpress mysql
  • dede手机网站模板下载黄冈做网站
  • 诸城网站建设葛小燕现在搜索引擎哪个比百度好用
  • 嘉兴做微网站多少钱注册网页需要多少钱
  • 论坛类网站设计大型网站系统解决方案
  • 网站建设中页面设计广告策划书籍
  • 云南省建设工程投标中心网站网页的制作步骤是什么
  • 保定网站设计概述更换动易网站模板的方法
  • 新手如何注册网站域名做 理财网站有哪些
  • 南宁快速建站模板企业网站的开发与应用
  • 网站运营适合什么样的人做企业宣传及介绍ppt
  • 怎么样网站开源小升初在线做试卷的网站
  • 中国建设银行章丘支行网站网站排版设计欣赏
  • 儿童摄影网站建设专业做网站制作自助建站系统