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

阿里云上如何用iis做网站app定制开发最牛青岗科技公司

阿里云上如何用iis做网站,app定制开发最牛青岗科技公司,怎么对自己的网页进行修改,莱芜话题济南在线synchronized和ReentrantLock的区别 synchronized 和 ReentrantLock 都是 Java 中用于实现线程同步的机制#xff0c;但它们在功能、使用方式、性能等方面存在显著区别。以下是两者的详细对比#xff1a; 1. 基本概念 synchronized 是 Java 内置的关键字#xff0c;用于实…synchronized和ReentrantLock的区别 synchronized 和 ReentrantLock 都是 Java 中用于实现线程同步的机制但它们在功能、使用方式、性能等方面存在显著区别。以下是两者的详细对比 1. 基本概念 synchronized 是 Java 内置的关键字用于实现线程同步可以修饰方法或代码块。它通过 JVM 实现属于隐式锁。ReentrantLock 是 Java 并发包java.util.concurrent.locks中的一个类属于显式锁提供了比 synchronized 更灵活的锁机制。 2. 主要区别 1使用方式 synchronized 代码块形式 synchronized (lockObject) {// 同步代码块 }方法形式 public synchronized void method() {// 同步方法 }ReentrantLock 需要显式创建锁对象并在需要时手动加锁和解锁 ReentrantLock lock new ReentrantLock();lock.lock(); // 加锁 try {// 同步代码 } finally {lock.unlock(); // 解锁 }2锁的获取与释放 synchronized 锁的获取和释放由 JVM 自动管理无需手动干预。如果发生异常JVM 会自动释放锁。 ReentrantLock 必须手动调用 lock() 和 unlock() 方法。必须在 finally 块中释放锁否则可能导致死锁。 3公平性 synchronized 默认是非公平锁无法直接控制锁的公平性。 ReentrantLock 可以选择公平锁或非公平锁 ReentrantLock fairLock new ReentrantLock(true); // 公平锁 ReentrantLock unfairLock new ReentrantLock(false); // 非公平锁默认4可中断性 synchronized 线程在等待锁时无法被中断只能一直等待。 ReentrantLock 提供了 lockInterruptibly()方法允许线程在等待锁时响应中断 javalock.lockInterruptibly(); // 可以被中断5尝试获取锁 synchronized 没有直接的方法尝试获取锁只能阻塞等待。 ReentrantLock 提供了 tryLock()方法可以尝试获取锁如果获取失败则立即返回 if (lock.tryLock()) {try {// 同步代码} finally {lock.unlock();} } else {// 获取锁失败的处理 }6锁绑定多个条件 synchronized 只能使用 Object 的 wait()、notify() 和 notifyAll() 方法且所有线程共享同一个条件队列。 ReentrantLock 可以绑定多个 Condition对象实现更精细的线程等待和唤醒 Condition condition lock.newCondition(); lock.lock(); try {condition.await(); // 线程等待condition.signal(); // 唤醒线程 } finally {lock.unlock(); }7性能 synchronized 在 Java 6 之前性能较差但在 Java 6 及之后版本中JVM 对 synchronized 进行了大量优化如锁粗化、锁消除、偏向锁、轻量级锁等性能接近 ReentrantLock。 ReentrantLock 在高竞争场景下性能可能优于 synchronized但需要手动管理锁的获取和释放增加了代码复杂度。 8可读性 synchronized 代码更简洁易于理解和维护。 ReentrantLock 代码更复杂需要手动管理锁的获取和释放容易出错如忘记释放锁。 3. 使用场景 synchronized 适用于简单的同步需求代码简洁易于维护。适合不需要复杂锁机制如公平性、可中断性、多条件的场景。 ReentrantLock 适用于需要更灵活的锁机制如公平性、可中断性、多条件的场景。适合高竞争场景或需要更精细控制线程同步的场景。 4. 总结对比表 特性synchronizedReentrantLock使用方式关键字隐式锁类显式锁锁的获取与释放自动管理手动管理lock()/unlock()公平性默认非公平可选择公平或非公平可中断性不支持支持lockInterruptibly()尝试获取锁不支持支持tryLock()锁绑定多个条件不支持支持Condition性能Java 6 后优化接近 ReentrantLock高竞争场景下可能更优可读性代码简洁代码复杂 5. 推荐使用 如果不需要复杂的锁机制优先使用 synchronized代码更简洁且易于维护。如果需要公平性、可中断性、多条件等高级功能或在高竞争场景下需要更精细的控制使用 ReentrantLock。 6. 示例代码 synchronized 示例 public class SynchronizedExample {private int count 0;public synchronized void increment() {count;}public static void main(String[] args) {SynchronizedExample example new SynchronizedExample();Runnable task () - {for (int i 0; i 1000; i) {example.increment();}};Thread t1 new Thread(task);Thread t2 new Thread(task);t1.start();t2.start();try {t1.join();t2.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Count: example.count); // 输出 2000} }ReentrantLock 示例 import java.util.concurrent.locks.ReentrantLock;public class ReentrantLockExample {private int count 0;private final ReentrantLock lock new ReentrantLock();public void increment() {lock.lock();try {count;} finally {lock.unlock();}}public static void main(String[] args) {ReentrantLockExample example new ReentrantLockExample();Runnable task () - {for (int i 0; i 1000; i) {example.increment();}};Thread t1 new Thread(task);Thread t2 new Thread(task);t1.start();t2.start();try {t1.join();t2.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Count: example.count); // 输出 2000} }通过以上对比可以根据具体需求选择合适的同步机制。
http://www.yayakq.cn/news/5443/

相关文章:

  • 服务器有了怎么做网站会员制营销方案案例
  • 深圳营销型网站建设制作商网站升级应注意的问题
  • 建网页和建网站wordpress邮箱配置stmp
  • 中国建设工程造价网站10000ip网站怎么做
  • 游戏网站建设成功案例北京seo多少钱
  • 网站建设项目维护与评价书无为网站设计
  • 网站流量工具手机网站大概多少钱
  • 做二手车按揭的网站备案号查询网站网址
  • 网站建设与维护流程图网站制作教程切片
  • iis网站防盗链怎么做营销型网站
  • 旅游网站手机模板因酷西安网站建设公司怎么样
  • 濮阳家电网站建设网站头部 标签
  • 企业网站推广的方法有哪几种discuz 科技网站模板
  • 做网站绿标电脑培训班
  • 公司为什么要建立网站南通网站公司网站
  • 电子拜年贺卡在线制作网站全网推广推荐
  • 建设一个网站论坛要多少钱电子商务网站模板
  • 凡科建设网站图片怎么删除发软文的平台
  • 用meteor框架做的微博网站招聘网最新招聘
  • 建网站程序工具下载软件的应用app
  • 搜索引擎网站的搜素结果有何区别深圳企业网站制作推广运营
  • 上海备案证查询网站彩视网站建设策划
  • 建立能网上交易的网站多少钱wordpress 提交插件
  • 福建省住房和城乡建设厅网站首页江苏网站开发公司
  • 微信开发网站制作企业名录搜索
  • 创建网站的免费软件国内个人网站首页布局
  • 网络商城网站怎样做关键词优化网站的交流的功能怎么做
  • 建设网站必备条件手机商城积分兑换
  • 低代码建站平台网站建设创新互联
  • 广州市萝岗区做网站设计服务全国十大猎头公司