三、聊聊并发 为什么Java并发编程必须了解Java内存模型
前言 前面我们说了在并发编程中引起线程不安全的原因,主要因为共享变量的可见性、重排序、原子性,也稍微的提了一下内存模型,那什么是内存模型呢?为什么必须要了解Java内存模型呢?那我们这篇文章就来聊一聊Java内存模型 什么是Java内存模型...
前言 前面我们说了在并发编程中引起线程不安全的原因,主要因为共享变量的可见性、重排序、原子性,也稍微的提了一下内存模型,那什么是内存模型呢?为什么必须要了解Java内存模型呢?那我们这篇文章就来聊一聊Java内存模型 什么是Java内存模型...
前言 上篇文章我们已经聊了线程安全,大概了解了对线程安全产生影响的重要因素是什么,我们还聊到了多线程的消息传递方式和内存交互方式,正因为这种交互方式使得共享变量在多线程之前存在可见性问题,除此之外还有处理器为了指令优化导致的重排序以及原子操...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
前言 并发编程的目的是为了让程序运行得更快,提高程序的响应速度,虽然我们希望通过多线程执行任务让程序运行得更快,但是同时也会面临非常多的挑战,比如像线程安全问题、线程上下文切换的问题、硬件和软件资源限制等问题,这些都是并发编程给我们带来的难...
简介 HashMap是Java程序员使用频率最高的用于映射(键、值对)处理的数据类型,它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条记录...
小伙伴好,我是 jack xu。我们知道 JVM 调优主要调的是垃圾收集器的选择和参数的设置,所以我们对垃圾回收的知识必须要掌握了解,不然怎么调优呢,那么什么是垃圾呢,我们类比生活中的垃圾,就是不要的东西,需要清除的东西,那么第一步就是要找...
hi,大家好,我是 jack xu,今天和大家聊一个轻松、好玩、易懂的话题,就是教大家搭建一个自己的个人博客网站,可以在同事朋友面前炫耀一把。事情的缘由是我们公司有个同事,有一天他给了我一个网站,我打开一看,上面是一个 jenkins 的页...
什么是分布式锁? 大家好,我是jack xu,今天跟大家聊一聊分布式锁。首先说下什么是分布式锁,当我们在进行下订单减库存,抢票,选课,抢红包这些业务场景时,如果在此处没有锁的控制,会导致很严重的问题。学过多线程的小伙们知道,为了防止多个线程...
缓存是互联网高并发系统里常用的组件,由于多增加了一层,如果没有正确的使用效果可能适得其反,诸如“缓存是删除还是更新?”,“先操作数据库还是先操作缓存?”都是些老生常谈的话题,今天我们就来聊一聊缓存与数据库的双写一致性的解决方案。 Cache...
小伙伴大家好,我是 jack xu,今天跟大家讲一讲 @Transactional,这个注解相信大家应该都用过,它能保证方法内多个数据库操作要么同时成功、要么同时失败。使用 @Transactional 注解时需要注意许多的细节,虽然它看起...
小伙们好,我是jack xu,今天跟大家讲一个老生常谈的话题,单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。网上的文章也很多,但是参差不齐,良莠不齐,要么说的不到点子上,要么写的不完整,我试图写一篇史上最全单例模...