首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
黑漏
掘友等级
后端 java
进击的程序猿
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
18
文章 18
沸点 0
赞
18
返回
|
搜索文章
最新
热门
并发编程之死锁、活锁、锁饥饿
死锁是指两个或两个以上的进程(线程)在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。 请求与保持条件:一个线程(进程)因请求被占用…
并发编程之AQS剖析
AQS全称是AbstractQueuedSynchronizer,即抽象同步队列。下面看一下AQS的类图结构: 在AQS中维持了一个volatile修饰的单一共享状态state,来实现同步器同步。其更新采用乐观锁思想的CAS算法。 CLH(Craig, Landin, and …
源码系列-HashMap源码解读(JDK1.8)
首先看一下Map家族四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap。 下面我们主要解读HashMap,结合源码,从存储结构、常用方法分析、扩容以及安全性等方面深入解读HashMap的工作原理。 引入了红黑树是因为它查找、插…
源码系列-ConcurrentHashMap源码
JDK1.8 的实现摒弃了Segment的概念,直接用Node数组 + 链表 + 红黑树的数据结构来实现,并发控制使用Synchronized和CAS来操作
并发编程之ThreadLocal 解读
ThreadLocal实例的弱引用对象会作为key存放在ThreadLocalMap中,然后set方法加入的值就作为ThreadLocalMap中的value。它提供了线程本地变量,可以保证访问到的变量属于当前线程。 通过Thread.currentThread()方法获取了当…
Redis专题-底层数据结构
常数复杂度获取字符串长度。 杜绝缓冲区溢出。C字符串不记录自身长度容易造成缓冲区溢出,SDS修改时,API会自动将SDS的空间扩展至执行修改所需的大小,然后才执行实际的修改操作。 减少修改字符串时带来的内存重分配次数。SDS采用空间预分配(增长操作)和惰性释放(缩短操作) 二进…
并发编程之LockSupport
LockSupport提供的park/unpark是以线程的角度来设计,真正解耦了线程之间的同步。 park()方法,对当前线程执行阻塞操作,直到获取到可用许可后才解除阻塞,也就相当于当前线程进入阻塞状态。 parkNanos(long)方法,对当前线程执行阻塞操作,等待获取到…
Redis专题-必知必会的基础知识
读写性能优异, Redis能读的速度是110000次/s,写的速度是81000次/s。 支持数据持久化,支持AOF和RDB两种持久化方式。 支持事务,Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。 数据结构丰富,除了支持string类型的v…
Http以及Https详解
早期以信息发布为主的Web 1.0时代,HTTP已可以满足绝大部分需要。证书费用、服务器的计算资源都比较昂贵,作为HTTP安全扩展的HTTPS,通常只应用在登录、交易等少数环境中。但随着越来越多的重要业务往线上转移,网站对用户隐私和安全性也越来越重视。对于防止恶意监听、中间人攻…
密码学初探
密码学有着严格的规范,其算法的实现原理是公开的。密码学算法是相对安全的,主要解决四个问题: 机密性(隐私性):在网络中传递的数据如果具备机密性,只有拥有密钥的才能解释这些数据,密钥是加密算法的关键。 完整性:接收方能够确保接收到的数据就是发送方发送的原始数据,在密码学中,主要使…
下一页
个人成就
文章被点赞
155
文章被阅读
336,944
掘力值
3,994
关注了
2
关注者
46
收藏集
0
关注标签
14
加入于
2021-03-17