学做网站多久千锋教育的it培训怎么样
2026/4/5 20:25:28 网站建设 项目流程
学做网站多久,千锋教育的it培训怎么样,域名购买成功后怎么做网站,网站做支付宝和网银接口文章目录一、按【实现方式】分类1. synchronized(JVM内置锁)2. lock#xff08;JUC显示锁#xff09;二、按【线程是否阻塞】分类1. 阻塞锁2. 自旋锁三、 按【是否公平】划分1. 公平锁2. 非公平锁四、按【锁的重入性】划分1. 可重入锁2. 不可重入锁五、 按【锁的作用范围】划…文章目录一、按【实现方式】分类1. synchronized(JVM内置锁)2. lockJUC显示锁二、按【线程是否阻塞】分类1. 阻塞锁2. 自旋锁三、 按【是否公平】划分1. 公平锁2. 非公平锁四、按【锁的重入性】划分1. 可重入锁2. 不可重入锁五、 按【锁的作用范围】划分1. 独占锁写锁2. 共享锁读锁六、按【底层实现思想】划分1. 乐观锁2. 悲观锁一、按【实现方式】分类1. synchronized(JVM内置锁)JVM级别的锁特点关键字自动加锁、自动释放锁锁的是对象或者类可重入用法synchronized(this){}publicsynchronizedvoidmethod(){}publicstaticsynchronizedvoidstaticMethod(){}锁升级过程无锁 → 偏向锁 → 轻量级锁 → 重量级锁优点简单JVM深度优化不容易出错缺点不够灵活不能中断不能尝试获取2. lockJUC显示锁代表ReentrantLockLocklocknewReentrantLock();lock.lock();try{// 临界区}finally{lock.unlock();}特点必须手动释放锁支持可终端锁尝试锁tryLock公平锁条件变量适用场景高并发复杂业务许哟啊精细控制锁的行为二、按【线程是否阻塞】分类1. 阻塞锁拿不到锁就坐等synchronizedReentrantLock.lock()优点逻辑简单对CPU友好缺点线程切换成本高2. 自旋锁拿不到锁就原地打转常见于CAS(底层实现)AtomicIntegerJVM内部的轻量级锁优点:避免线程切换适合锁时间极短的场景缺点占用CPU三、 按【是否公平】划分1. 公平锁先到先得排队买票newReentrantLock(true);特点线程按申请顺序获得锁吞吐量较低适合场景业务对公平性要求避免线程饥饿2. 非公平锁允许插队效率优先newReentrantLock();特点吞吐量高可能导致个别线程等待时间长四、按【锁的重入性】划分1. 可重入锁**同一线程可反复进入synchronizedReentrantLocksynchronizedvoida(){b();}synchronizedvoidb(){}意义防止自己把自己锁死java锁的默认能力2. 不可重入锁进入一次就够再来就死锁Java中几乎不用理论概念面试用五、 按【锁的作用范围】划分1. 独占锁写锁**一次只允许一个线程synchronizedReentrantLockReentrantReadWriteLock.WriteLock2. 共享锁读锁多个线程可以同时持有ReentrantReadWriteLock.ReadLockReadWriteLockrwnewReentrantReadWriteLock();rw.readLock().lock();// 共享rw.writeLock().lock();// 独占适合场景读多写少缓存、配置读取六、按【底层实现思想】划分1. 乐观锁不加锁靠冲突检测CASAtomic*LongAdderatomic.compareAndSet(old,new);2. 悲观锁先锁再说防一切synchronizedReentrantLock

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询