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

徐汇网站建设推广百度广告投诉电话

徐汇网站建设推广,百度广告投诉电话,网站搜索引擎友好性分析,整合营销推广策略文章目录 前言一、 ReentrantLock#xff08;单机锁#xff0c;Java 内置#xff09;示例#xff1a;方法详解 二、RLock#xff08;分布式锁#xff0c;Redisson 提供#xff09;示例:方法详解 三、 对比总结:四、 如何选择#xff1f; 前言 ReentrantLock 和 RLock 都… 文章目录 前言一、 ReentrantLock单机锁Java 内置示例方法详解 二、RLock分布式锁Redisson 提供示例:方法详解 三、 对比总结:四、 如何选择 前言 ReentrantLock 和 RLock 都是可重入锁Reentrant Lock但它们属于不同的锁实现分别适用于 单机环境 和 分布式环境。 一、 ReentrantLock单机锁Java 内置 ReentrantLock 是 Java 标准库java.util.concurrent.locks提供的可重入互斥锁适用于 单机多线程 场景。特点可重入性同一个线程可以多次获取同一把锁避免死锁。公平/非公平锁支持公平锁按等待顺序获取和非公平锁默认允许插队。可中断:lockInterruptibly() 允许线程在等待锁时响应中断。条件变量支持 Condition用于线程间协调如 await() / signal()。必须手动释放必须调用 unlock()否则可能导致死锁。 示例 ReentrantLock lock new ReentrantLock(); try {if (lock.tryLock(1, TimeUnit.SECONDS)) { // 尝试获取锁最多等1秒try {System.out.println(Lock acquired!);} finally {lock.unlock(); // 必须手动释放}} } catch (InterruptedException e) {Thread.currentThread().interrupt(); }方法详解 方法说明lock()阻塞获取锁如果锁被占用当前线程会一直等待。lockInterruptibly()可中断地获取锁等待过程中可响应 InterruptedException。tryLock()尝试非阻塞获取锁成功返回 true失败返回 false。tryLock(long timeout, TimeUnit unit)在指定时间内尝试获取锁超时返回 false。unlock()释放锁必须在 finally 块中调用避免死锁。isLocked()判断锁是否被占用非标准方法需自定义实现。isHeldByCurrentThread()判断当前线程是否持有锁。getHoldCount()返回当前线程持有锁的次数可重入计数。getQueueLength()返回等待获取锁的线程数监控用。hasQueuedThreads()是否有线程在等待锁。newCondition()返回 Condition 对象用于线程间协调类似 wait/notify。 二、RLock分布式锁Redisson 提供 RLock 是 RedissonRedis 客户端提供的 分布式可重入锁适用于 多机多进程 环境基于 Redis 实现。特点可重入性同 ReentrantLock支持同一个客户端多次加锁。自动释放(Lease Time):可以设置锁的自动过期时间防止死锁。看门狗机制(Watchdog):如果未指定 leaseTimeRedisson 会启动一个后台线程看门狗自动续期锁避免业务未执行完锁就过期。支持高可用如果 Redis 是集群模式RLock 仍然可用Redisson 有 RedLock 算法。支持异步锁提供 lockAsync() 等异步方法。 示例: RLock lock redisson.getLock(myLock); try {// 尝试获取锁最多等10秒锁自动30秒后释放if (lock.tryLock(10, 30, TimeUnit.SECONDS)) {try {System.out.println(Lock acquired!);// 业务逻辑...} finally {lock.unlock(); // 建议手动释放即使设置了leaseTime}} } catch (InterruptedException e) {Thread.currentThread().interrupt(); }方法详解 方法说明lock()阻塞获取锁默认 看门狗自动续期防止死锁。lock(long leaseTime, TimeUnit unit)获取锁并设置自动释放时间leaseTime 后自动释放。lockInterruptibly()可中断获取锁支持线程中断。tryLock()尝试获取锁成功返回 true失败返回 false。tryLock(long waitTime, long leaseTime, TimeUnit unit)在 waitTime 内尝试获取锁成功后锁在 leaseTime 后自动释放。unlock()释放锁建议在 finally 中调用。forceUnlock()强制释放锁即使当前线程未持有。isLocked()判断锁是否被占用。isHeldByCurrentThread()当前线程是否持有锁。remainTimeToLive()返回锁的剩余存活时间TTL。 三、 对比总结: 四、 如何选择 单机应用 ➝ ReentrantLock更轻量无网络开销。 分布式系统 ➝ RLock基于 Redis适用于多服务竞争锁。 需要自动释放 ➝ RLock设置 leaseTime 防止死锁。 需要条件变量 ➝ ReentrantLockCondition 更灵活。 如果你的应用是 微服务/分布式架构RLock 是更好的选择如果是 单机高并发ReentrantLock 更高效。
http://www.hkea.cn/news/14442620/

相关文章:

  • 青岛住房和城乡建设厅网站首页自己做网站需要钱吗
  • 六安市建设网站市场信息价wordpress免费网站模板下载
  • 上海网站建设公司服务绵阳做网站的有哪些
  • 吴中区网站建设技术对网站开发语言的统计
  • 韩国做hh网站福建中江建设公司网站
  • 大型论坛网站建设网站建设工作整改报告
  • dw 如何做自适应网站免备案空间推荐
  • 哪家企业做网站好无锡常规网络营销是什么
  • 找设计案例的网站开发php网站建设
  • 怎样做卡盟网站小视频剪辑app哪个好
  • 淘宝网站青岛网站建设方案服务
  • 关于外贸公司的网站模板html网页超链接代码
  • 深圳做电商平台网站建设风控网站开发
  • 深圳做微信商城网站建设怎样做网站关键词
  • 长沙商城网站建设微友说是做网站维护让帮忙投注
  • 各大搜索引擎提交网站入口大全wordpress设置目录
  • 九台区建设银行网站wordpress 中英文
  • 苏州比较大的网站公司国内重要新闻
  • 做动图为所欲为的网站记事本做的网站链接怎么装饰
  • 建设校园网站的背景及意义网站建设对企业经营
  • 电子商务网站推广案例荣茂网站建设
  • 提供坪山网站建设沈阳工程信息交易网
  • 做网站最简单的工具网页项目策划书模板
  • 商务网站建设的可行性分析包括成品短视频app大全
  • 北京知名的网站建设公司公司网站建设优点
  • 网站建设的7种流程图中国服务器市场
  • 教育网站开发深圳做网站费用
  • 网站制作的基本概念如何快速新建一个网站
  • 怎么查网站接入商可以做淘宝客的网站有哪些
  • 杭州做网站比较出名的公司关于建立企业网站的方案内容