![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
高并发多线程
文章平均质量分 73
java基础,线程池,锁,集合
redstone618
人因为梦想而伟大,机遇永远属于那些有准备、立即行动并能坚持到底的人!
展开
-
Synchronized锁升级过程
锁实际上是加在对象上的,那么被加了锁的对象我们称之为锁对象,在java中,任何一个对象都能成为锁对象。为了更好着理解虚拟机是如何知道这个对象就是一个锁对象的,下面简单介绍一下java中一个对象的结构。java对象在内存中的存储结构主要有一下三个部分:这里强调一下,对象头里的数据主要是一些运行时的数据。其简单的结构如下当我们创建一个对象LockObject时,该对象的部分Markword关键数据如下:偏向锁的标志位是“01”,状态是“0”,表示该对象还没有被加上偏向锁。(“1”是表示被加上偏向锁)。该对象原创 2023-08-02 17:33:05 · 265 阅读 · 0 评论 -
对称加密与非对称加密
加密方式大致分为两种,对称加密和非对称加密。对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。因此安全性大大提...原创 2019-03-10 12:28:41 · 297 阅读 · 0 评论 -
ThreadLocal使用与原理
在处理多线程并发安全的方法中,最常用的方法,就是使用锁,通过锁来控制多个不同线程对临界区的访问。但是,无论是什么样的锁,乐观锁或者悲观锁,都会在并发冲突的时候对性能产生一定的影响。那有没有一种方法,可以彻底避免竞争呢?答案是肯定的,这就是ThreadLocal。从字面意思上看,ThreadLocal可以解释成线程的局部变量,也就是说一个ThreadLocal的变量只有当前自身线程可以访问,别的线程都访问不了,那么自然就避免了线程竞争。转载 2021-12-07 11:08:14 · 116 阅读 · 0 评论 -
秒杀系统中如何动态生成下单随机URL
秒杀系统中通常会避免用户之间访问下单页面的URL(避免使用爬虫来造成不公平)。所有需要将URL动态化,即使秒杀系统的开发人员也无法在知晓在秒杀开始时的URL。解决办法是在获取秒杀URL的接口中,返回一个服务器端生成的随机数,并在下单URL中传递该参数完成下单。首先构造一个获取下单URL的modlepublic class Exposer {//加密措施private String md5;//其中必要字段,如是否开启秒杀,时间等省}获取秒杀URL的conntroller:@Request原创 2021-12-06 18:30:51 · 1361 阅读 · 0 评论