最近事太多太乱,出来抱怨一下。
仔细一算毕业也快有二个月了,曾经梦想着自己会有美好的前途,然后毕业了才知道,现实如此残酷,投出简历无数,确无一回应。
突然的一天接到某某保险工司面试邀请,起初比较兴奋,而后经过网上查询,并无投过该单位简历,经过在三认证,最终结果显示XX保险工司只是为
原创
2009-02-13 14:59:19
632阅读
6评论
Redisson框架十分强大,不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。基于Redisson框架可以实现几乎你能想到的所有类型的分布式锁。这里,我就列举几个类型的分布式锁,并各自给出一个示例程序来加深大家的理解。1.可重入锁(Reentrant Lock)Redisson的分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.L
原创
2021-02-04 17:24:51
267阅读
什么是锁?在并发环境下,多个线程访问同一资源会对此资源进行争抢。那么就可能会导致数据不一致的问题。为了解决这个问题,很多语言都引入了锁的机制,通过一种抽象的锁来对资源进行锁定。 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码 ...
转载
2021-10-11 14:51:00
65阅读
2评论
什么是锁?在并发环境下,多个线程访问同一资源会对此资源进行争抢。那么就可能会导致数据不一致的问题。为了解决这个问题,很多语言都引入了锁的机制,通过一种抽象的锁来对资源进行锁定。 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码 ...
转载
2021-10-11 14:51:00
103阅读
2评论
synchronized的升级过程引入JOL(Java Object Layout)来打印java对象头在内存中的字节码。<dependency> <groupId>org.openjdk.jol</g
原创
2023-04-23 10:23:31
173阅读
每个时代,都不会亏待会学习的人大家好,我是yes。本来打算继续写消息队列的东西的,但是最近在带新同事,发现新同事对于锁这方面有一些误解,所以今天就来谈谈“锁”事和 Java 中的并发安全容器使用有哪些注意点。不过在这之前还是得先来盘一盘为什么需要锁这玩意,这得从并发 BUG 的源头说起。并发 BUG 的源头这个问题我 19 年的时候写过一篇文章, 现在回头看那篇文章真的是羞涩啊。让我们来看下这个源
原创
2020-10-25 21:26:50
150阅读
从轻松的乐观锁和悲观锁聊起 悲观锁 认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。 synchronized关键字和Lock的实现类都是悲观锁 使用场景: 适合写操作多的场景,先加锁可以保证写操作时数据正确。 显式的锁定之后再操作同步资源 ...
转载
2021-07-27 21:38:00
322阅读
2评论
一、乐观锁和悲观锁
1、悲观锁
认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的数据修改
synchronized关键字和Lock的实现类都是悲观锁
悲观锁适合写操作多的场景,先加锁可以保证写操作时数据正确
显式的锁定之后再操作同步资源
// ------------------------- 悲观锁的调用方式 ---------------
原创
精选
2023-05-25 16:44:55
514阅读
先来盘一盘为什么需要锁这玩意,这得从并发 BUG 的源头说起。并发 BUG 的源头这个问题我 19 年的时候写过一篇文章, 现在回头看那篇文章真的是羞涩啊。让我们来看下这个源头是什么,我们知道电脑有CPU、内存、硬盘,硬盘的读取速度最慢,其次是内存的读取,内存的读取相对于 CPU 的运行又太慢了,因此又搞了个CPU缓存,L1、L2、L3。正是这个CPU缓存再加上现在多核CPU的情况产生了并发BUG
转载
2020-12-18 18:22:23
314阅读
# Java 方法上的锁:实现与理解
作为一名刚入行的Java开发者,你可能会遇到需要在方法上加锁以保证线程安全的情况。锁是多线程编程中用于控制对共享资源访问的一种机制。本文将指导你如何实现Java方法上的锁。
## 锁的基本概念
在多线程环境中,当多个线程尝试同时访问同一个资源时,可能会导致数据不一致的问题。锁机制可以确保在任意时刻,只有一个线程可以访问特定的代码段。
## 实现Java
并发 BUG 的源头
我们知道电脑有CPU、内存、硬盘,硬盘的读取速度最慢,其次是内存的读取,内存的读取相对于 CPU 的运行又太慢了,因此又搞了个CPU缓存,L1、L2、L3。
正是这个CPU缓存再加上现在多核CPU的情况产生了并发BUG。
这就一个很简单的代码,如果此时有线程 A 和线程 B 分别在 CPU - A 和 CPU - B 中执行这个方法,它们的操作是先将 a 从主存取到 CPU
转载
2021-07-16 15:37:11
53阅读
大家好,我是yes。
本来打算继续写消息队列的东西的,但是最近在带新同事,发现新同事对于锁这方面有一些误解,所以今天就来谈谈“锁”事和 Java 中的并发安全容器使用有哪些注意点。
不过在这之前还是得先来盘一盘为什么需要锁这玩意,这得从并发 BUG 的源头说起。
并发 BUG 的源头
这个问题我 19 年的时候写过一篇文章, 现在回头看那篇文章真的是羞涩啊。
让我们来看下这个源头是什么,我们知道
原创
2020-10-26 14:42:00
35阅读
多线程技术是提高系统并发能力的重要技术,在应用多线程技术时需要注意很多问题,如线程退出问题、CPU及内存资源利用问题、线程安全问题等,本文主要讲线程安全问题及如何使用“锁”来解决线程安全问题。
原创
2020-10-06 18:01:11
810阅读
锁事
转载
2007-09-02 08:09:44
372阅读
一、公平锁&非公平锁1.1公平锁是什么公平锁:线程按照申请锁的顺序来获取锁;在并发环境中,每个线程都会被加到等待队列中,按照 FIFO 的顺序获取锁。非公平锁:线程不按照申请锁的顺序来获取锁;一上来就尝试占有锁,如果占有失败,则按照公平锁的方式等待。通俗来讲,公平锁就相当于现实中的排队,先来后到;非公平锁就是无秩序,谁抢到是谁的;1.2优缺点公平锁优点:线程按照顺序获取锁,不会出现饿死现象
原创
2020-09-22 14:40:56
278阅读
一、公平锁&非公平锁1.1公平锁是什么公平锁:线程按照申请锁的顺序来获取锁;在并发环境中,每个线程都会被加到等待队列中,按照 FIFO 的顺序获取锁。
原创
2021-07-13 13:39:59
119阅读
点击上方蓝字关注我们! 场景升级为分布式所带来的问题 众所周知,在单体服务中处理高并发场景时,可以使用java提供的两种内置的锁来保证数据的一致性。 例如: 业界目前的第三方系统的实现方案有数据库锁、
原创
2022-07-25 08:22:30
77阅读
在现实生活中,我们常常能看到人生的一个弱点:避重就轻。虽然知道哪个重要,但总会找到各种理由去回避它。当然结果是味淡的东西嚼了不少,却难有机会口尝那香而略苦的东西了。 人生有时候被许多无关紧要的小事困扰,人生被沉埋于这些琐碎的事物之中,到了最后,却往往忽略了去做那些真正对自己重要的事情。结果,白白浪费了许多宝贵的时间。
转载
精选
2008-02-17 10:41:29
619阅读
点赞
2评论
一。not null vs DEAFUL value 在建表的时候,通常会要求给所有字段一个默认值,1来避免产生null字段,2来
转载
2023-07-18 16:20:23
53阅读
在互联网公司面试中,很多小伙伴都被问到过关于锁的问题。 今天,我给大家一次性把Java并发锁的全家桶彻底讲明白。包括互斥锁、读写锁、重入锁、公平锁、悲观锁、自旋锁、偏向锁等等等等。视频有点长,大家一定要全部看完,保证你会醍醐灌顶。 1、锁的由来 在并发编程中,经常会遇到两个以上的线程访问同一个共享变量,当同时对共享变量进行读写操作时,就会产生数据不一致的情况。 随着线程并发技术的发展,在