自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 golang规则引擎-expr

Expr是一个语法解析器,可以便捷的解析一些语法并获取结果。

2024-07-21 16:38:57 425

原创 58. 不理解竞态问题

竞态问题可能程序员面临的最困难和最隐蔽的错误之一。作为 Go 开发者,必须理解数据竞争和竞态条件等关键方面,包括它们可能产生的影响以及如何避免。接下来将首先讨论数据竞争与竞态条件的区别,然后研究 Go 内存模型及其重要性。

2024-07-21 12:48:02 594

原创 57. 关于channels和mutexes迷惑

关于并发 goroutine,还有一种情况是,我们希望将资源的所有权从一个步骤(G1 和 G2)转移到另一个步骤(G3);因为在go语言中推荐通过交互来共享内存,所以经常犯的一个错误是,无论什么什么场景,都选择使用channels。知道goroutine是并行的还是并发是很重的,因为一般情况下,并行。需要访问或修改共享资源(如切片)时,需要进行同步,而这种同步是通过互斥锁实现,通道类型(包括有缓冲的通道)无法实现这种同步,所以一般来说,并行。channel是在并发线程中接收和发送数据的一种交互机制。

2024-07-21 10:12:41 254

原创 56. 并发并一定更快

通常来说,大多数程序员认为并发一定是快于单线程,这是一个错误的认知。一个解决方案的性能怎么样,取决于很多因素,如:整个架构是否拆分为并发的执行单元以及各执行单元间资源竞争如何。在操作系统级别可执行的最小单元是「线程」。如果一个进程想同时执行多个操作,那么就需要启动多个线程,这些线程可以是并发亦或是并行。操作系统负责以最佳方式调度线程,保证所有线程都能消耗 CPU ,不会长时间处于饥饿状态,工作负载尽可能均匀地分布在不同的 CPU 内核之间。CPU可以执行多个不同的线程。

2024-07-14 21:50:47 805

原创 并发与并行的混淆(错误55)

并行并行是多个任务或操作在同一时刻实实在在地同时执行的工作方式。资源独立性:并行处理中的每个任务都拥有独立的资源分配,如在我们所举的咖啡店例子中,新增的店员和新增的咖啡机都有各自独立的工作空间和设备资源,彼此互不干扰、相互独立地执行任务。同步性:多个并行的任务能够在相同的时间点上同步推进,共同完成工作。每个任务都在同一时刻按照各自的流程和步骤进行操作,彼此之间不存在时间上的先后依赖关系。高效性:由于多个任务能够同时开展,所以在单位时间内完成的工作量大大增加,工作效率显著提升。

2024-07-14 00:23:18 972

原创 【问题解决】pip安装工具包超时问题解决

在安装jieba时,总是超时。可以通过以下两种方式尝试解决。方式2: 指定可靠的信源地址。方式1: 设定超时时间。

2023-04-16 10:54:26 1456

原创 【工具】json遇见了unicode编码怎么破

unicode编码、json

2022-12-24 17:15:25 1270

原创 【Redis】底层数据结构

redis底层数据结构的设计与实现

2022-12-20 23:28:37 139

原创 【解决方案】缓存一致性解决方案

缓存一致性解决方案

2022-12-03 00:46:22 231

原创 单例的变量变了

spring 单例

2022-11-27 15:12:03 237

原创 amis的实战

amis、低代码、js

2022-09-04 16:42:15 2939

原创 JMM的介绍

jmm

2022-08-20 17:25:08 163

转载 python rest 请求

学习python

2022-06-25 18:10:36 386

原创 HashMap源码解析

hashMap

2022-06-12 18:38:55 198

原创 六顶思考帽

学习了六顶帽

2022-06-12 18:30:05 105

原创 【JUC】ReentrantReadWriteLock源码分析

ReentrantReadWriteLock的源码分析

2022-06-05 18:00:15 65

原创 【JUC】ReentrantLock源码解析

关于ReentrantLock的实现源码级解析

2022-06-04 15:37:54 53

原创 如何使用Unsafe

unsafe

2022-06-03 15:54:53 127

原创 【guava系列】RateLimiter之SmoothWarmingUp原理

关于RateLimiter的SmoothWarmingUp原理介绍

2022-06-02 18:04:43 432

原创 【guava系列】RateLimiter之SmoothBursty

学习RateLimiter的SmoothBursty

2022-06-02 10:00:13 242

原创 EventBus的理解

EventBus的原理解析以及demo样例

2022-05-31 20:09:24 113

原创 guava cache的理解

为什么要用cache在业务实现过程中,有些基本信息进行缓存化,以提升服务的性能,如降低服务的响应时延。有人可能会问题,现在已经有了分布式缓存,为什么还要用本地缓存,因为本地缓存可以减低分布式缓存的压力,同时,可以减少访问分布式缓存的网络损耗,性能更佳。那是不是所有的缓存都可以使用本地缓存,如果对于单体应用来说,使用本地缓存完全可以,在方案设计过程中,尽量考虑到后续随着业务量的增加,需要进行实例的扩容,单纯的本地缓存,将来进行扩容时,如果需要实例间共享的数据,当前通过本地缓存,会造成业务流程出现异常,或者

2022-05-30 23:26:37 554

原创 【LeetCode】贪心算法买卖股票

题目121. 买卖股票的最佳时机122. 买卖股票的最佳时机 II714. 买卖股票的最佳时机含手续费题目描述具体题目可以通过上边的链接去查看。三道题难度依次递增。解题思路贪心算法,不断的追求当前的利益最大化。对于题目1,仅是能交易一次,所以我们需要做的就是最低点买入,最高点卖出。对于题目2,可以多次交易,所以我们需要做的就是不断的进行低买高卖。对于题目3,可以多次交易同时会有一次手续费,如果我们算在买时交手续费,那么是不是和题目就一样了。对于题目2和题目3有一点需要注意的,就是连续出

2022-05-29 19:48:35 96

原创 【LeetCode】1351. 统计有序矩阵中的负数

题目1351. 统计有序矩阵中的负数题目描述给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列。 请你统计并返回 grid 中 负数 的数目。示例 1:输入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]输出:8解释:矩阵中共有 8 个负数。解题思路思路1按照题目的特性进行找出,当然不是暴力的双层循环。从每一列来说,如果第i个位置小于0,i~m个数字均是小于0的。count=m-i

2022-05-29 11:35:57 209

原创 【LeetCode】74. 搜索二维矩阵

题目74. 搜索二维矩阵题目描述编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3输出:true解题思路从题目特性出发,从左到右有序,次行的第一个大于上一行的最后一个,说明什么,整个二维数组全局有序,题目是不是就是以二维数组展示的一个一维数组

2022-05-29 10:30:17 51

原创 【LeetCode】3. 无重复字符的最长子串

题目3. 无重复字符的最长子串题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。解题思路这个题目是前边面试美团一面时遇到过。仍然是从题目入手,不含有重复字符串,所以需要记录每个字符出现的最后一个字符出现的位置,用于统计当前两个重复字符之间的长度(diff)。用curDiff记录当前不含重复字符的字符串长度。对于包含重复字符的处理逻辑

2022-05-28 21:51:52 372

原创 【LeetCode】167. 两数之和 II - 输入有序数组

题目167. 两数之和 II - 输入有序数组题目描述给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和

2022-05-28 21:10:57 167

原创 【LeetCode】1608. 特殊数组的特征值

题目1608. 特殊数组的特征值题目描述给你一个非负整数数组 nums 。如果存在一个数 x ,使得 nums 中恰好有 x 个元素 大于或者等于 x ,那么就称 nums 是一个 特殊数组 ,而 x 是该数组的 特征值 。注意: x 不必 是 nums 的中的元素。如果数组 nums 是一个 特殊数组 ,请返回它的特征值 x 。否则,返回 -1 。可以证明的是,如果 nums 是特殊数组,那么其特征值 x 是 唯一的 。解题思路首先,题目限制了范围0~1000。其次,x是数组中存在大于等于x

2022-05-28 20:41:10 205

原创 关于热点key的思考

背景我们是做客服系统的,对于知识信息会缓存在redis当中,用以提升问答时的响应时延,同时提高并发量。之后,在面试时,面试时针对这个问题提出了一个疑问,每次问答都需要获取当前知识的版本号,那这个版本号是不是就成为了一个热点数据,会产生什么问题,如何避免?我当时给的答案是可能会造成流量的倾斜,可能会造成Redis单点故障。但是关于解决方案的话,当时提出的是将key打散到各个Redis实例上,以实现流量的均衡,当时面试官让具体描述一下做法。当时没有太好的思路。现在整理一下相关能想到的方案,未必合理,还望各位大

2022-05-27 17:58:33 163

原创 最近面试中的一些面试点

整理了最近面试的一些知识点,希望后续对大家的面试能有所帮助。

2022-05-27 16:02:26 59

转载 通俗易懂的学会:SQL窗口函数【转载】

​一.窗口函数有什么用?在日常工作中,经常会遇到需要在每组内排名,比如下面的业务需求:排名问题:每个部门按业绩来排名topN问题:找出每个部门排名前N的员工进行奖励面对这类需求,就需要使用sql的高级功能窗口函数了。二.什么是窗口函数?窗口函数,也叫OLAP函数(Online Anallytical Processing,联机分析处理),可以对数据库数据进行实时分析处理。窗口函数的基本语法如下:<窗口函数> over (partition by <用于分组的列名>

2022-05-07 15:06:50 238

原创 【面试】字节一面

自我介绍LRU怎么实现、LFU呢?这两个都是LeetCode上的题,LFU还是个困难级别的。package bytedance;import java.util.HashMap;import java.util.Map;/** * @author woniu * @date 2022/5/6 16:55 **/public class LRUCache { private int capacity; private int size; priv..

2022-05-07 13:56:51 691

原创 MySQL面试题

MyISAM与InnoDB 的区别MySQL5.5版本之前默认引擎是MysISAM,之后是InnoDBMyISAM不支持事务,InnoDB支持MyISAM不支持外键,InnoDB支持MyISAM是非聚簇索引,InnoDB是聚簇索引MyISAM可以没有主键,InnoDB必须有主键MyISAM表级锁,InnoDB支持表、行级锁非聚簇索引和聚簇索引的区别[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bgJ10plg-1651408773436)(…/…/imag

2022-05-01 20:40:25 47

原创 Redis主从同步原理

2.8版本以前同步(snyc)执行步骤:从服务器发送snyc给主服务器主服务器收到命令后,开始执行bgsave操作,将生成RDB文件,将生成的RDB文件同步给从服务。并使用一个缓冲区记录从现在开始的写命令从服务载入接受到的RDB文件,期间不可进行其他操作。主服务将缓冲区里的命令同步给从服务器传播同步完成之后,后续的命令都是通过传播的方式发送给从服务器的。即当主服务执行完一条命令后,将该命令发送给从服务,完成数据的同步。缺陷场景:首次复制,不存在问题,毕竟新连接上一个master

2022-04-23 15:01:35 2633 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除