04 2020 档案

摘要:今天和郑晓龙沟通Redis使用的过程中,吐槽现在隆众平台很多地方出现了数据更新后,Redis和数据库中的数据不一致的问题。 然后就诱发了这个问题的讨论,我的观点是对数据进行修改后,也要同步更新Redis中的数据,即重新set一个value进去。晓龙的意见是 数据更新后,对redis中对应的key执行 阅读全文
posted @ 2020-04-30 08:35 joimages 阅读(365) 评论(0) 推荐(0)
摘要:首先要明白每一个线程都是有自己单独的内存区域来执行操作的,也就是有单独的计数器,单独的局部变量等。多线程之间的共享对象,如果在多线程环境下不做特殊处理是极易出问题的。现在主要说的是线程交互之间的可见性。 那什么是可见性呢,简单来说就是纸某个线程修改共享变量的指令对其他线程来说都可见的,它反映的是指令 阅读全文
posted @ 2020-04-30 08:21 joimages 阅读(136) 评论(0) 推荐(0)
摘要:像之前我们说的 synchronized 这种独占锁属于悲观锁。什么是悲观锁呢?简单来说,它是在悲观的认为加锁的这个地方一定会发生冲突。除了悲观锁之后,还有乐观锁,乐观锁的含义就是我乐观的认为这个的地方不会发生冲突,如果没有发生冲突我就正常执行,如果发生了冲突,我就重试。 CAS(compare a 阅读全文
posted @ 2020-04-27 08:25 joimages 阅读(163) 评论(0) 推荐(0)
摘要:一个对象是否是线程安全的,取决于它是否被多个线程访问。要是的对象是线程安全的,需要采用同步机制来协同对 对象 可变状态的访问。当一个线程访问某个状态变量并且其中有一个或多个线程执行写入操作时,必须采用同步机制来协同这些线程对变量的访问。Java中的主要同步机制是关键字 synchronized 。 阅读全文
posted @ 2020-04-24 17:08 joimages 阅读(199) 评论(0) 推荐(0)
摘要:多线程知识梳理(1):当我们谈到指令乱序的时候,在谈什么? 结论 我喜欢先说结论。 程序里面的每行代码的执行顺序,有可能被编译器和CPU根据某种策略给打乱掉。目的是为了性能的提升,让指令的执行能尽可能的并行起来。 可能发生乱序的地方 在Java代码运行过程中,有三处地方会发生指令乱序。 1. 代码编 阅读全文
posted @ 2020-04-23 19:17 joimages 阅读(471) 评论(0) 推荐(0)
摘要:LeetCode刷题记录本 "两数之和" 难度 :简单 描述 :给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例 解题思路 可以看到题目给的前提 阅读全文
posted @ 2020-04-16 15:01 joimages 阅读(166) 评论(0) 推荐(0)