首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
zhong0316
掘友等级
后端
|
腾讯
喜欢打篮球和看NBA
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
11
文章 11
沸点 0
赞
11
返回
|
搜索文章
最新
热门
Mysql知识点整理
主键索引:数据列不允许重复,不允许为NULL。一个表只能有一个主键索引。InnoDB的主键索引为聚簇索引,而MyISAM的主键索引为非聚簇索引。 唯一索引:数据列不允许重复,允许为NULL,一个表中允许创建多个唯一索引。唯一索引可以用作业务防重。 普通索引:基本的索引类型,没有…
Leetcode kSum问题
kSum 泛指一类问题,例如 leetcode 第1题 2 Sum,leetcode 第15题 3 Sum,leetcode 第18题 4 Sum。 我们先一题一题来看,然后总结出这一类题目的解题套路。 这种解法最简单直观,但是效率也是最低的。如果提交的话无法通过所有 test…
寻找数组中第K大的元素
这题最简单的做法是将数组排序,然后直接返回第K大的元素。复杂度为:O(NlogN)。但是,很明显,出题者并不想让我们这么做。 如果对数组排序,算法的复杂度起码是 O(NlogN)。那么如果我们不排序,能不能求出第K大元素呢?答案是可以的,我们知道快速排序中有一个步骤是 part…
Guava RateLimiter限流
缓存,降级和限流是大型分布式系统中的三把利剑。目前限流主要有漏桶和令牌桶两种算法。 缓存:缓存的目的是减少外部调用,提高系统响速度。俗话说:"缓存是网站优化第一定律"。缓存又分为本机缓存和分布式缓存,本机缓存是针对当前JVM实例的缓存,可以直接使用JDK Collection框…
如何让两个线程交替打印数字
用AtomicInteger保证多线程数据可见性。 不要觉得synchronized加锁是多余的,如果没有加锁,线程1和线程2就可能出现不是交替打印的情况。如果没有加锁,设想线程1打印完了一个奇数后,线程2去打印下一个偶数,当执行完status.getAndIncrement(…
[转载]基于Redis的分布式锁到底安全吗?
网上有关Redis分布式锁的文章可谓多如牛毛了,不信的话你可以拿关键词“Redis 分布式锁”随便到哪个搜索引擎上去搜索一下就知道了。这些文章的思路大体相近,给出的实现算法也看似合乎逻辑,但当我们着手去实现它们的时候,却发现如果你越是仔细推敲,疑虑也就越来越多。 实际上,大概在…
Java中断机制
Java中断机制为我们提供了一种"试图"停止一个线程的方法。设想我们有一个线程阻塞在一个耗时的I/O中,我们又不想一直等下去,那么我们怎么样才能停止这个线程呢?答案就是Java的中断机制。 一个线程新建后,在调用该线程的start()方法之前,该线程的状态就是NEW;当线程的s…
ExecutorService shutdown()和shutdownNow()方法区别
ExecutorService是我们经常使用的线程池,当我们使用完线程池后,需要关闭线程池。ExecutorService的shutdown()和shutdownNow()方法都可以用来关闭线程池,那么他们有什么区别呢? 当我们调用shutdown()方法后,线程池会等待我们已…
优惠劵系统库存设计浅谈
优惠劵系统活动库存一般分为:总库存和日库存。在一个用户来领取优惠劵时,需要判断当前剩余总库存和日库存是否充足,如果充足则进行库存扣减,否则提示用户领取失败。总库存和日库存的扣减是一个原子操作,要么都成功,要么都失败。我们知道数据库事务满足"ACID"特性,因此可以将这两个操作放…
Java中的伪共享
CPU的缓存是以缓存行(cache line)为单位进行缓存的,当多个线程修改不同变量,而这些变量又处于同一个缓存行时就会影响彼此的性能。例如:线程1和线程2共享一个缓存行,线程1只读取缓存行中的变量1,线程2修改缓存行中的变量2,虽然线程1和线程2操作的是不同的变量,由于变量…
下一页
个人成就
文章被点赞
296
文章被阅读
94,037
掘力值
2,172
关注了
80
关注者
140
收藏集
1
关注标签
32
加入于
2019-02-24