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

成都网站搭建公司哪家好西安建设市场信息平台

成都网站搭建公司哪家好,西安建设市场信息平台,外包网页制作页面多少钱一张,淘宝客cms网站怎么做一、JUC介绍 1. 为什么需要JUC? 传统并发缺陷:synchronized关键字存在性能瓶颈(重量级锁)、缺乏灵活性(不可中断、非公平)。JUC优势: 提供更细粒度的锁控制(如ReentrantLock的可中…

一、JUC介绍

1. 为什么需要JUC?
  • 传统并发缺陷synchronized关键字存在性能瓶颈(重量级锁)、缺乏灵活性(不可中断、非公平)。
  • JUC优势
    • 提供更细粒度的锁控制(如ReentrantLock的可中断、超时获取锁)。
    • 非阻塞算法提升性能(如CAS替代锁竞争)。
    • 丰富的并发工具(线程池、并发容器、同步器等)。
2. JUC的设计思想
  • 分工:通过线程池管理线程资源(如ThreadPoolExecutor)。
  • 协作:利用同步工具协调线程执行顺序(如CountDownLatch)。
  • 互斥:通过锁和原子类保证线程安全(如ReentrantLockAtomicInteger)。

二、JUC重点


1. 锁机制:AQS(AbstractQueuedSynchronizer)
核心原理
  • CLH队列:通过双向链表实现线程排队,避免自旋导致的CPU浪费。
  • 状态变量(state):通过volatile修饰的int值表示锁状态(如重入次数)。
  • 模板方法模式:子类实现tryAcquire/tryRelease定义锁获取和释放逻辑。
面试高频问题
  • Q:AQS如何实现公平锁与非公平锁?
    // 非公平锁(默认)
    final boolean nonfairTryAcquire(int acquires) {// 直接尝试获取锁,不检查队列
    }// 公平锁
    protected final boolean tryAcquire(int acquires) {// 先检查队列中是否有等待线程if (hasQueuedPredecessors()) return false;// ...
    }
    
  • Q:AQS的唤醒机制如何避免“惊群效应”?
    • 仅唤醒队列中第一个可用线程,而非所有线程。

2. 显式锁:ReentrantLock vs synchronized
对比维度ReentrantLocksynchronized
锁获取方式需手动lock()/unlock()自动获取和释放(代码块或方法)
可中断性支持(lockInterruptibly()不支持
公平性支持公平与非公平(构造函数指定)仅非公平
条件变量支持多条件(newCondition()单一等待队列
性能高并发场景更优优化后(偏向锁、轻量级锁)性能接近
使用示例
ReentrantLock lock = new ReentrantLock();
Condition condition = lock.newCondition();lock.lock();
try {while (queue.isEmpty()) {condition.await();  // 释放锁并等待}// 业务逻辑
} finally {lock.unlock();
}

3. 并发容器
ConcurrentHashMap
  • JDK 7 vs JDK 8
    • JDK7:分段锁(Segment),每个段独立加锁。
    • JDK8CAS + synchronized锁单个链表头节点,粒度更细。
  • 关键方法
    • putVal():通过spread(hash)计算索引,CAS插入节点。
    • size():基于CounterCell的分段统计,避免竞争。
CopyOnWriteArrayList
  • 适用场景:读多写少(如监听器列表)。
  • 实现原理:写操作时复制新数组,替换旧引用(保证最终一致性)。

4. 线程池(ThreadPoolExecutor)
核心参数
public ThreadPoolExecutor(int corePoolSize,      // 核心线程数(长期保留)int maximumPoolSize,  // 最大线程数long keepAliveTime,   // 非核心线程空闲存活时间TimeUnit unit,BlockingQueue<Runnable> workQueue, // 任务队列RejectedExecutionHandler handler   // 拒绝策略
)
任务处理流程
  1. 提交任务,若核心线程未满,创建新线程执行。
  2. 核心线程已满,任务进入阻塞队列。
  3. 队列已满,创建非核心线程执行。
  4. 线程数达最大值且队列满,触发拒绝策略。
拒绝策略
  • AbortPolicy(默认):抛出RejectedExecutionException
  • CallerRunsPolicy:由提交任务的线程直接执行。
  • DiscardOldestPolicy:丢弃队列最旧任务,重试提交。
  • DiscardPolicy:静默丢弃新任务。

5. 同步工具类
CountDownLatch vs CyclicBarrier
对比项CountDownLatchCyclicBarrier
重置性一次性可重复使用
等待动作主线程等待其他线程完成所有线程相互等待
核心方法countDown() + await()await()
典型场景启动准备、任务分阶段提交多线程计算后合并结果
Semaphore
  • 作用:控制同时访问资源的线程数(如限流)。
  • 示例:数据库连接池管理。
    Semaphore semaphore = new Semaphore(10); // 允许10个并发
    semaphore.acquire();   // 获取许可
    try {// 访问资源
    } finally {semaphore.release();
    }
    

三、JUC面试题

1. volatile关键字的作用?
  • 可见性:保证变量修改后立即同步到主内存。
  • 禁止指令重排序:通过内存屏障实现(如单例模式的双重检查锁)。
2. CAS的ABA问题如何解决?
  • 版本号机制:使用AtomicStampedReference记录变量版本。
3. 线程池如何避免内存泄漏?
  • 务必关闭线程池:调用shutdown()shutdownNow()
  • 使用有界队列:避免任务无限堆积导致OOM。

文章转载自:

http://TxtKk6BU.dmLgq.cn
http://J1jJrAvU.dmLgq.cn
http://PiQQI1G6.dmLgq.cn
http://10G3aQqG.dmLgq.cn
http://0q3FsNaQ.dmLgq.cn
http://hMbYFIug.dmLgq.cn
http://8g8kTbgW.dmLgq.cn
http://kmChpMLg.dmLgq.cn
http://P4G9rpXu.dmLgq.cn
http://Jt6FySd7.dmLgq.cn
http://uLaoQTDt.dmLgq.cn
http://GhXDNWIS.dmLgq.cn
http://oU9KS8LO.dmLgq.cn
http://Qs38Gtbr.dmLgq.cn
http://5kEtUaPT.dmLgq.cn
http://J0oQjIOQ.dmLgq.cn
http://qOslj8IR.dmLgq.cn
http://6kUoKYTZ.dmLgq.cn
http://LYFFyfxe.dmLgq.cn
http://EGCUchGT.dmLgq.cn
http://WaeYAMuJ.dmLgq.cn
http://8YSRLdW9.dmLgq.cn
http://P9WseCUU.dmLgq.cn
http://BVplJru7.dmLgq.cn
http://FwvhlKJB.dmLgq.cn
http://siGajnlx.dmLgq.cn
http://TQfJ1EKd.dmLgq.cn
http://WXXsvV5P.dmLgq.cn
http://F6DVhh4X.dmLgq.cn
http://lnLOTnGN.dmLgq.cn
http://www.dtcms.com/wzjs/604102.html

相关文章:

  • 芜湖网站建设芜湖教育培训的网站建设
  • 最优做网站长春网站建设公司排名
  • 网站后台用什么浏览器临沂网站建设制作
  • 网站商城建设员招聘网站建设的成功经验
  • 学生做网站赚钱wordpress 文件服务
  • 一级a做片性视频 网站在线观看网站自助搭建平台
  • 最火的网站开发语言WordPress自适应播放器代码
  • 小橘子被做h网站wordpress关注功能
  • 宿舍网站建设目的手机商城小程序
  • 保险网站推荐图片 网站开发
  • 有自己网站做淘宝客赚钱5188站长平台
  • 网站开发备案费用建筑业大数据服务平台官网
  • 公众号网站怎么建口碑最好的购物网站平台
  • wordpress关于本站在哪做网站专业
  • 建设网站建站公司.net作业做网站
  • 云梦县网站开发wordpress 图片浮动
  • 做婚恋网站投入多少钱衡水网站建设找谁
  • 论坛网站建设源码下载教外国人做中国菜网站
  • 购物网站的搜索框用代码怎么做公众号开发者密码
  • 网站信息建设成都旅游图高清大图
  • 新野微网站开发百度一下就一个
  • 怎样弄一个网站怎么做微信点击网站打赏看片
  • 西安晨曦e动网站建设开发一个电商平台app要多少钱
  • 包头市住房和城乡建设局网站电脑本地网站建设
  • 肥西县建设发展局网站湖南建筑信息网查询
  • html购物网站源码北京互联网营销
  • 橙 建网站wordpress加载动画插
  • 网页设计与网站建设案例课堂郑州防疫办
  • 网站公告建设方案毕节地seo
  • 网站访问量大打不开网站删除留言板功能删除