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

功能型网站有哪些凡客精选

功能型网站有哪些,凡客精选,浪起科技做的网站怎么样,微网站建设方案一、Java内存模型#xff08;JMM#xff09;是什么#xff1f; Java内存模型#xff08;Java Memory Model, JMM#xff09;是Java多线程编程中共享内存的访问规则#xff0c;定义了线程如何与主内存#xff08;Main Memory#xff09;和工作内存#xff08;Work Mem…一、Java内存模型JMM是什么 Java内存模型Java Memory Model, JMM是Java多线程编程中共享内存的访问规则定义了线程如何与主内存Main Memory和工作内存Work Memory交互解决多线程并发中的原子性、可见性、有序性问题。确保多线程程序在不同架构的处理器和内存系统上都能正确运行。 二、核心概念 主内存与工作内存 主内存所有线程共享的内存区域存储变量实例字段、静态字段等类似于计算机中的物理内存。 工作内存每个线程私有的内存区域存储主内存变量的副本。 交互规则线程只能操作工作内存中的变量副本修改后需同步回主内存。 原子性、可见性、有序性 原子性操作不可分割如AtomicInteger要不全部完成要不全部不做。 基本数据类型的赋值操作如int a 10。 使用synchronized关键字或Lock接口实现的同步代码块。 public class Counter {private int count 0; ​public synchronized void increment() {count;} } 可见性一个线程对变量的修改能被其他线程立刻看到volatile、synchronized。 volatile关键字确保变量的修改立即刷新到主内存其他线程读取时能获取最新值。 synchronized关键字线程退出同步块时会将工作内存中的变量写回主内存。 public class VolatileExample {private volatile boolean running true; ​public void stop() {running false;} ​public void run() {while (running) {// do something}} } 有序性代码执行顺序与程序顺序一致防止指令重排序。 happens-before原则定义了操作的先后顺序。 内存屏障防止指令重排序。 Happens-Before原则 JMM定义的保证有序性的规则若操作A happens-before 操作B则A的结果对B可见。 常见规则 程序顺序规则 在单线程中代码的执行顺序符合书写顺序。 volatile变量规则 锁规则synchronized或Lock 线程启动/终止规则 传递性规则 三、关键机制 volatile关键字 保证变量的可见性直接读写主内存禁止缓存。 禁止指令重排序通过插入内存屏障Memory Barrier。 示例双检锁单例模式中的volatile修饰实例对象。 synchronized与锁 通过监视器锁Monitor实现原子性和可见性。 线程解锁前必须将变量同步回主内存。 final关键字 构造函数中对final域的写入与后续引用赋值操作不会被重排序。 确保其他线程看到final变量时其初始化已完成。 并发工具类 如CountDownLatch、CyclicBarrier等用于更复杂的线程同步。 四、常见问题与面试考点 volatile能否保证原子性 不能。volatile仅保证读写操作的原子性但复合操作如i仍需同步。 DCL双检锁单例模式为什么要加volatile 防止指令重排序导致其他线程获取未初始化完成的对象。 synchronized和ReentrantLock的区别 synchronized是JVM内置锁自动释放ReentrantLock需手动加锁/解锁支持公平锁、条件变量。 什么是内存可见性问题如何解决 线程A修改变量后未及时同步到主内存线程B读取旧值。 解决volatile、synchronized、Lock。 指令重排序的典型场景 单例模式初始化new Object()可能被拆分为分配内存、初始化对象、赋值引用三步重排序后导致空指针。 什么是“线程安全的发布” 对象在构造完成后才能被其他线程访问。 方式volatile、静态初始化块、final域、线程安全容器如ConcurrentHashMap。 jJ五、代码示例内存可见性问题 public class VisibilityDemo {// 不加volatile可能导致死循环private static volatile boolean flag true; ​public static void main(String[] args) throws InterruptedException {new Thread(() - {while (flag) {} // 线程可能读取到旧的flag值System.out.println(Thread stopped.);}).start(); ​Thread.sleep(1000);flag false; // 主线程修改flag} } 六、面试总结 必考知识点 volatile的作用与原理 synchronized的底层实现Monitor、锁升级 Happens-Before原则的规则 指令重排序与内存屏障 加分回答 结合JMM分析ConcurrentHashMap的线程安全设计。 对比JMM与物理内存模型CPU缓存、MESI协议。 掌握JMM是写出高并发代码的基础也是大厂面试的必考领域
http://www.dnsts.com.cn/news/37731.html

相关文章:

  • 微信开发网站制作分类建站cms系统
  • 主机壳 安装wordpress重庆网站推广优化
  • 网站设计就业岗位分析搜狗网站seo
  • 做网站哪个系统最安全如何优化seo关键词
  • 之江汇学校网站建设wordpress源代码如何在本地编辑
  • 企业网站如何提高足球比方类网站开发
  • 网站建站视频深圳航空人工服务电话
  • 国内网站服务器wordpress目录分页怎么弄
  • 天河区住房和建设水务局网站北京市住房城乡建设部网站首页
  • 微信公司网站wordpress手机仪表盘
  • 在猪八戒做网站有保障吗爱淘苗网站开发模式
  • 制作海报长春seo排名
  • 通信工程毕设可以做网站吗网站建设情况
  • 网站开发的思维导图素材模板网站
  • 网站建设数据库怎么选择北京建立公司网站
  • 平乡县网站建设建筑施工平台
  • 网站开发的常见编程语言有哪些什么语言做网站简单
  • 自适应网站建设方案wordpress 微博时间
  • 网站建设及政务工作自查计算机网站建设开题报告
  • 什么语言做网站简单制作简单门户网站步骤
  • 做电影网站如何盈利wordpress 显示指定分类文章列表
  • 一流的聊城做网站公司加强网站安全建设说明报告范文
  • 广西网站开发公司旅游网站官网
  • 建湖营销型网站建设工作室电子商务的网站的建设内容
  • 求个网站2021年能用网站开发合同.doc
  • 扁平式网站模板成都网站建设哪家强
  • 社交类网站手机模版广西住房与城乡建设厅网站
  • 深圳企业建站高性价比的选择网站商品管理功能
  • 企查查企业信息查询在线佛山网站seo哪家好
  • 西安模板网站服务商用vs做网站界面