01 2022 档案

java phaser
摘要:Phaser java7中引入了一种新的可重复使用的同步屏障,称为移相器Phaser. Phaser拥有与CyclicBarrier和CountDownLatch类似的功劳.但是这个类提供了更加灵活的应用.CountDownLatch和CyclicBarrier都是只适用于固定数量的参与者.移相器适 阅读全文

posted @ 2022-01-25 22:20 胡子就不刮 阅读(516) 评论(0) 推荐(0) 编辑

java cyclicbarrier
摘要:CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活 这个屏障之所以用循环修饰,是因为在所有的线程释放彼此之后,这个屏障 阅读全文

posted @ 2022-01-20 19:42 胡子就不刮 阅读(240) 评论(0) 推荐(0) 编辑

java countdownlatch
摘要:1.背景: countDownLatch是在java1.5被引入,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue 存在于java.util.cucurrent包下 2.概念 countDownLatch这个类使 阅读全文

posted @ 2022-01-20 16:56 胡子就不刮 阅读(148) 评论(0) 推荐(0) 编辑

java locksupport
摘要:LockSupport LockSupport是一个线程阻塞工具类,所有的方法都是静态方法,可以让线程在任意位置阻塞,当然阻塞之后肯定得有唤醒的方法 接下面我来看看LockSupport有哪些常用的方法。主要有两类方法:park和unpark public static void park(Obje 阅读全文

posted @ 2022-01-20 15:17 胡子就不刮 阅读(526) 评论(0) 推荐(0) 编辑

java 并发容器
摘要:1.什么是同步容器 Java的集合容器框架中,主要有四大类别:List、Set、Queue、Map,大家熟知的这些集合类ArrayList、LinkedList、HashMap这些容器都是非线程安全的 如果有多个线程并发地访问这些容器时,就会出现问题。因此,在编写程序时,在多线程环境下必须要求程序员 阅读全文

posted @ 2022-01-19 22:30 胡子就不刮 阅读(83) 评论(0) 推荐(0) 编辑

java 1.8stream 优化代码
摘要:Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读 流简化代码 有一个需求,需要对数据库查询到的菜肴进行一个处理: 筛选出卡路里小于400的菜肴 对筛选出的菜肴进行一个排序 获取排序后菜肴的名字 菜肴:D 阅读全文

posted @ 2022-01-19 22:14 胡子就不刮 阅读(181) 评论(0) 推荐(0) 编辑

mysql 通过索引进行优化
摘要:前面说了mysql的索引为啥用B+树,下面来说说索引的分类 索引一般分为以下几类: 主键索引:当创建表的时候如果包含主键,数据库就会默认给主键添加索引 唯一索引:表中唯一列添加的索引 普通索引:又叫二级索引或者辅助索引,表示的是除了主键、唯一键添加的索引 全文索引:一般在varchar、char或者 阅读全文

posted @ 2022-01-16 23:45 胡子就不刮 阅读(119) 评论(0) 推荐(0) 编辑

如何判断回文字符串
摘要:百度百科:回文字符串是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文字符串 回文字符串判断的3种方法: 1 使用 for 循环判断(百度推荐) 是将字符串分隔成两半,先对比第一位和最后一位是否相等,如果相等进行下一次循环,每次给首位+1 和末尾-1,然后再进行判断,在整 阅读全文

posted @ 2022-01-12 21:02 胡子就不刮 阅读(1202) 评论(0) 推荐(0) 编辑

排序--桶排序
摘要:桶排序的介绍 ​ 桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。但桶排序并不是 比较排序,他不受到 O(n log n) 下 阅读全文

posted @ 2022-01-11 22:30 胡子就不刮 阅读(34) 评论(0) 推荐(0) 编辑

排序--计数排序
摘要:计数排序的介绍 ​ 计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。 作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数 计数排序(Counting sort)是一种稳定的排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素 阅读全文

posted @ 2022-01-11 22:28 胡子就不刮 阅读(67) 评论(0) 推荐(0) 编辑

排序--基数排序
摘要:基数排序的介绍 基数排序也是非比较的排序算法,对每一位进行排序,从最低位开始排序,复杂度为O(kn),为数组长度,k为数组中的数的最大的位数; ​ 基数排序是按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位。有时候有些属性是有优先级顺序的,先按低优先级排序,再按高优先级排序 阅读全文

posted @ 2022-01-11 22:25 胡子就不刮 阅读(66) 评论(0) 推荐(0) 编辑

排序--希尔排序
摘要:希尔排序的介绍 希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名 ​ 希尔排序是把记录按下标的一定增量 阅读全文

posted @ 2022-01-11 22:21 胡子就不刮 阅读(49) 评论(0) 推荐(0) 编辑

Sentinel 限流
摘要:限流分为单机和分布式两种,单机限流是指限定当前进程里面的某个代码片段的 QPS 或者 并发线程数 或者 整个机器负载指数,一旦超出规则配置的数值就会抛出异常或者返回 false。我把这里的被限流的代码片段称为「临界区」 而分布式则需要另启一个集中的发票服务器,这个服务器针对每个指定的资源每秒只会生成 阅读全文

posted @ 2022-01-10 20:36 胡子就不刮 阅读(1196) 评论(0) 推荐(0) 编辑

限流算法
摘要:限流算法--Google的Guava令牌桶 pom依赖 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>29.0-jre</version> </dependency> 阅读全文

posted @ 2022-01-09 23:38 胡子就不刮 阅读(68) 评论(0) 推荐(0) 编辑

4种延时任务实现方案
摘要:业务场景 我们买火车票或者叫外卖的时候,下完单之后会跳转到支付页面,页面里通常会有一个计时器,要求在指定时间内完成支付,否则订单就会被自动取消。这就是延时任务的一个典型业务场景。分析这个场景,其实最关键的就是如何在订单超时的时候立即触发取消订单的动作。 那么如何实现这种延时业务呢?通常有以下4种方案 阅读全文

posted @ 2022-01-07 17:34 胡子就不刮 阅读(600) 评论(0) 推荐(0) 编辑

RocketMQ Namesrv
摘要:RocketMQ 技术架构 整体由几大部分组成:生产者、消费者、namesrv、broker、zookeeper 生产端: 生产端集群化部署,通过Namesrv进行路由,将消息发送到broker。 消费端: 消费端集群化部署,通过Namesrv进行路由,从broker拉取消息进行消费。 broker 阅读全文

posted @ 2022-01-07 16:33 胡子就不刮 阅读(623) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示