摘要:
序言:本文章基于令牌桶算法实现了简单的一个限流器 1 令牌桶算法 实现原理 令牌生成:在固定的时间间隔内,算法会向一个桶中放入一定数量的令牌。令牌的生成速率是固定的,通常以每秒钟生成的令牌数来表示。 桶的容量:桶有一个最大容量,如果桶满了,新的令牌将被丢弃。这意味着即使在高流量情况下,系统也不会无限 阅读全文
摘要:
要求:使用多个线程轮流打印字符 方法1。无锁自旋,一般在多核机器并且临界区耗时很短的话可以尝试自旋 public class printABC { static Logger log = new Logger(Logger.LogLevel.DEBUG, printABC.class); stati 阅读全文
摘要:
序言:这篇文章主要记录了java线程池在一些特殊场景出现的奇怪问题。 场景 核心线程数量为2,最大线程数量为4,生存时间60s,任务队列大小为4。每次向线程池中提交8个任务执行。那么,这个线程池能否正常运行呢? 1 demo 我们可以根据这个要求写一个demo出来 public class Demo 阅读全文
摘要:
递归遍历。靶的范围在0~10,选择一环,累计分数。然后递归进入下一环,重复操作。 到最后一个靶时检查分数是否等于目标分数,是则计数一次,否则返回上一层递归并清除本层打靶的分数; 代码 int shoot(int target, int k){ //target:目标分数 k:打靶次数 static 阅读全文
摘要:
2015篇 1.有一个含有 n 个整数的无序数据序列,所有数据元素各不相同,采用整数数组 R[0, n-1] 存储。要求: (1). 设计一个尽可能高效的算法,输出序列中第 k(1≤k≤n) 小的元素 两种思路: 建立一个含 k 个元素的小顶堆进行堆排。堆中保留最大的 k 个数,堆顶即为第 k 小元 阅读全文