取经之路 - synchronized关键字

本文详细解析了Java中synchronized关键字的使用与底层实现原理,包括其在实例方法、静态方法及代码块中的应用,以及与可见性和锁机制的关系。探讨了synchronized的效率问题和优化策略,如偏向锁、轻量锁和重量锁的概念。

在这里插入图片描述

关键字synchronized

  • 使每个线程依次排队操作共享变量 <效率低,但是基础>

  • 原理

    • 场景
      • 方法
        • 实例方法 synchronized void func()
        • 静态方法 (类方法)static synchronized void func()
      • 代码块
        • 实例对象synchronized(this)
        • 类对象synchronized(ClassA.class)
        • 具体对象``string lock = “”; synchronized(lock)`

    **自我理解: **

    静态和实例的区别就是:

    • 静态属于这个类的所有实例的方法都会被锁
    • 实例仅仅锁住当前对象实例
  • 底层原理

  • 监听器

    • 先获取对象的监听器monitor才能继续执行
    • 同一时刻只用一个线程可以获得对象的监听器monitor <互斥>
    • 类对象的synchronized具有重入性,不需要再次获得锁
    • 每个对象都有监听器,只有获得监听器才能继续操作,否则线程等待阻塞
  • A happens-before B

    • A执行再B得前面
    • A得结果对B可见 <B读取到的数据使A的值>
  • 获取和释放锁的内存含义

  • 获取锁

    • 从主存中读取数据到工作内存
  • 释放锁

    • 将工作内存中的最新之刷新到主存

自我理解

对象的监听器和可见性

  • synchronized优化

悲观锁 很是悲观,一开始就认为自己有冲突,获取锁的时候阻塞其他线程获取锁

乐观锁爱笑的人运气不会差,一开始认位没有冲突,不会阻塞其他线程的操作

  • CAS 比较交换

    • 检测线程是否出现冲突

    • VON操作

      • V 内存存放的实际值

      • O 旧的值

      • N 更新的值

        操作

        V ==O -> V=N

        V!=O -> return V

    • 缺点

      • ABA问题 解决方案:AtomicStampedReference Java1.5之后引入
      • 自旋时间过长
      • 只能保证一个共享变量的原子操作 解决方案: 常量类
  • Java对象头

    • 组成
      • 锁状态
        • 无状态
        • 偏向锁
        • 轻量锁
        • 重量锁
      • 对象hashcode
      • 对象分代年龄
      • 是否偏向锁
      • 锁标记
    • 偏向锁
      • 使获得锁的代价减少 <通过检查对象头,避免CAS操作>
      • 等到竞争出现的时候才释放锁
    • 轻量锁
      • 执行代码前再栈帧创建锁记录空间
      • 可升级为重量锁 <锁可以升级不能降级>

内容概要:本文介绍了基于贝叶斯优化的CNN-LSTM混合神经网络在时间序列预测中的应用,并提供了完整的Matlab代码实现。该模型结合了卷积神经网络(CNN)在特征提取方面的优势与长短期记忆网络(LSTM)在处理时序依赖问题上的强大能力,形成一种高效的混合预测架构。通过贝叶斯优化算法自动调参,提升了模型的预测精度与泛化能力,适用于风电、光伏、负荷、交通流等多种复杂非线性系统的预测任务。文中还展示了模型训练流程、参数优化机制及实际预测效果分析,突出其在科研与工程应用中的实用性。; 适合人群:具备一定机器学习基基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)础和Matlab编程经验的高校研究生、科研人员及从事预测建模的工程技术人员,尤其适合关注深度学习与智能优化算法结合应用的研究者。; 使用场景及目标:①解决各类时间序列预测问题,如能源出力预测、电力负荷预测、环境数据预测等;②学习如何将CNN-LSTM模型与贝叶斯优化相结合,提升模型性能;③掌握Matlab环境下深度学习模型搭建与超参数自动优化的技术路线。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注贝叶斯优化模块与混合神经网络结构的设计逻辑,通过调整数据集和参数加深对模型工作机制的理解,同时可将其框架迁移至其他预测场景中验证效果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值