LeetCode 1290 二进制链表转整数

2020-07-02
阅读 1 分钟
1.7k
LeetCode 1290 二进制链表转整数 题目 1290. 二进制链表转整数 给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。 请你返回该链表所表示数字的 十进制值 。 示例 1:输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5) 示例 2:输入:hea...

Redis-发布订阅与Stream

2020-07-01
阅读 13 分钟
3.5k
发布/ 订阅系统 是 Web 系统中比较常用的一个功能。简单点说就是 发布者发布消息,订阅者接受消息,这有点类似于我们的报纸/ 杂志社之类的: (借用前边的一张图)

数据库-MySQL中for update的作用和用法

2020-06-29
阅读 2 分钟
36.2k
如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁.即使多个用户对一个表均使用了共享更新,但也不允许两个事务同时对一个表进行更新,真正对表进行更新时,是以独占方式锁表,一直到提交或复原该事务为止。

分布式锁(4)-基于Mysql实现

2020-06-29
阅读 4 分钟
23.2k
分布式锁(4)-基于Mysql实现系列文章链接:分布式锁(1)-分布式锁简介分布式锁(2)-基于Redis的实现分布式锁(3)-Redisson实现分布式锁(4)-基于Mysql实现分布式锁(5)-MLock使用介绍(自己实现,基于redis,适用于真实项目)1.使用场景在分布式系统里,我们有时执行定时任务,或者处理某些并发请求,需要确保多点系统里同时只有...
封面图

分布式锁(3)-Redisson实现

2020-06-28
阅读 8 分钟
7.5k
文章分布式锁(2)- 基于Redis的实现中,最后给出的redis实现的分布式锁,还有一个严重的问题,那就是这种实现是不可重入的,而要实现可重入的分布式锁,会很麻烦,幸亏已经有现成的轮子可以使用。
封面图

分布式锁(2)- 基于Redis的实现

2020-06-28
阅读 7 分钟
3.9k
分布式锁(2)- 基于Redis的实现系列文章链接:分布式锁(1)-分布式锁简介分布式锁(2)-基于Redis的实现分布式锁(3)-Redisson实现分布式锁(4)-基于Mysql实现分布式锁(5)-MLock使用介绍(自己实现,基于redis,适用于真实项目)1. 使用Redis实现分布式锁的理由Redis具有很高的性能;Redis的命令对此支持较好,实现起来很方便;2...
封面图

分布式锁(1)-分布式锁简介

2020-06-28
阅读 2 分钟
3.1k
分布式锁(1)-分布式锁简介系列文章链接:分布式锁(1)-分布式锁简介分布式锁(2)-基于Redis的实现分布式锁(3)-Redisson实现分布式锁(4)-基于Mysql实现分布式锁(5)-MLock使用介绍(自己实现,基于redis,适用于真实项目)1.什么是分布式锁为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进...
封面图

Mysql锁机制简介

2020-06-18
阅读 3 分钟
2.4k
表级锁Mysql中锁定 粒度最大 的一种锁,对当前操作的整张表加锁,实现简单 ,资源消耗也比较少,加锁快,不会出现死锁 。其锁定粒度最大,触发锁冲突的概率最高,并发度最低,MyISAM和 InnoDB引擎都支持表级锁。

二叉树知识点回忆以及整理

2020-06-17
阅读 18 分钟
2k
在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”和“右子树”,左子树和右子树同时也是二叉树。二叉树的子树有左右之分,并且次序不能任意颠倒。

红黑树的增删操作

2020-06-16
阅读 16 分钟
3.2k
红黑树查找的最坏时间复杂度也是O(logN)。为了它这么高的性能,我感觉自己费了这么多脑细胞和时间来学习也是值得的(自己前前后后看了好多次)。这篇文章和插入图也是我自己用心根据自己的理解来做,希望大家能在学习红黑树的时候提高效率,不走弯路。

TCP 协议如何保证可靠传输

2020-06-16
阅读 3 分钟
18.9k
校验和:TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。

TCP三次握手和四次挥手

2020-06-16
阅读 2 分钟
3.8k
TCP三次握手和四次挥手 为了准确无误地把数据送达目标处,TCP协议采用了三次握手策略。 1. TCP 三次握手漫画图解 如下图所示,下面的两个机器人通过3次握手确定了对方能正确接收和发送消息(图片来源:《图解HTTP》)。 简单示意图: 客户端–发送带有 SYN 标志的数据包–一次握手–服务端 服务端–发送带有 SYN/ACK 标志的数...

ThreadLocal

2020-06-08
阅读 5 分钟
1.5k
通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。如果想实现每一个线程都有自己的专属本地变量该如何解决呢? JDK中提供的ThreadLocal类正是为了解决这样的问题。 ThreadLocal类主要解决的就是让每个线程绑定自己的值,可以将ThreadLocal类形象的比喻成存放数据的盒子,盒子中可以存储每个线程的私有数据。

GET和POST两种基本请求方法的区别

2020-06-04
阅读 3 分钟
1.8k
GET和POST两种基本请求方法的区别 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。 ...

BUG-并行流与数组下标越界-思考与总结

2020-04-30
阅读 8 分钟
2.5k
BUG-并行流与数组下标越界-思考与总结 今天线上环境报异常,发现了一个之前没注意过的问题,记录一下。 1. 异常信息 异常信息如下: {代码...} 产生bug的代码改写后如下: {代码...} 2. 异常追踪分析 从上面的信息可以看出,是StringBuilder.append使用时,产生了数组下标越界异常。下面是代码追踪: {代码...} 一路追踪...

Redis(1)-内存模型

2020-03-17
阅读 15 分钟
1.3k
我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是Redis相对于Memcached等的一大优势。在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用有很大帮助,例如: