摘要: 并发编程之:深入解析线程池 大家好,我是小黑,一个在互联网苟且偷生的农民工。 本期带来线程池的第二期内容,如果对线程池的基本概念还不是很清楚,可以先看我上一篇文章。 面试官:谈谈你对线程池的理解 本期内容会从以下几个方面解析线程池的具体实现: 线程池状态 线程池初始化 如何执行任务 钩子方法 等待队列和排队策略 自定义拒绝策略 阅读全文
posted @ 2021-09-08 13:12 小黑说Java 阅读(2691) 评论(3) 推荐(4) 编辑
摘要: 前言 对多线程有所了解的朋友一般都会熟悉一个概念:锁。 在多线程并发场景下,要保证在同一时刻只有一个线程可以操作某个业务、数据或者变量,通常需要使用加锁机制。比如synchronized或Lock等。 而随着架构演进、业务发展,我们的应用往往都不是只部署在一台服务器上,而是使用分布式集群架构,同时存 阅读全文
posted @ 2022-03-08 09:22 小黑说Java 阅读(715) 评论(0) 推荐(0) 编辑
摘要: 前言 没有人能保证自己的系统不出错,同样,在调用第三方系统时,也不能保证能够100%的成功。 往往会因为程序逻辑、网络中断、边界值等各种各样的问题导致服务失败。 在不同的业务领域对于服务的错误率有着不同的要求,一些金融领域的系统一般要求服务的错误率为0.01%。 那么为了保证很低的错误率,则需要通过 阅读全文
posted @ 2022-03-02 09:31 小黑说Java 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 使用MyBatis拦截器后,摸鱼时间又长了。🐟 场景 在后端服务开发时,现在很流行的框架组合就是SSM(SpringBoot + Spring + MyBatis),在我们进行一些业务系统开发时,会有很多的业务数据表,而表中的信息从新插入开始,整个生命周期过程中可能会进行很多次的操作。 比如,我们在某网站购买一件商品,会生成一条订单记录,在支付完 阅读全文
posted @ 2022-02-21 14:13 小黑说Java 阅读(387) 评论(1) 推荐(0) 编辑
摘要: 前言 小黑在开发中遇到个问题,我负责的模块需要调用某个三方服务接口查询信息,查询结果直接影响后续业务逻辑的处理; 这个接口偶尔会因网络问题出现超时,导致我的业务逻辑无法继续处理; 这个问题该如何解决呢?,小黑首先想到的就是重试嘛,如果失败了就再调用一次。 问题来了,如果又失败了呢?接着重试嘛。我们循 阅读全文
posted @ 2021-12-26 16:21 小黑说Java 阅读(658) 评论(0) 推荐(0) 编辑
摘要: 一文读懂位运算 概述 在计算机程序中所有的数都是以二进制形式存储的。位运算就是直接对整数在二进制进行计算操作。作为一名程序员掌握位运算的基本使用是很重要的,而对于算法程序员来说,位运算的灵活使用能够更灵活高效的解决很多问题。 位运算都有哪些 符号 描述 运算规则 & 与 同为1时结果为1,其它为0 | 或 同为0时 阅读全文
posted @ 2021-09-26 13:40 小黑说Java 阅读(892) 评论(1) 推荐(1) 编辑
摘要: 并发编程之:ForkJoin 大家好,我是小黑,一个在互联网苟且偷生的农民工。 在JDK1.7中引入了一种新的Fork/Join线程池,它可以将一个大的任务拆分成多个小的任务并行执行并汇总执行结果。 Fork/Join采用的是分而治之的基本思想,分而治之就是将一个复杂的任务,按照规定的阈值划分成多个简单的小任务,然后将这些小任务 阅读全文
posted @ 2021-09-17 12:57 小黑说Java 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 并发编程之:异步调用获取返回值 大家好,我是小黑,一个在互联网苟且偷生的农民工。 Runnable 在创建线程时,可以通过new Thread(Runnable)方式,将任务代码封装在Runnable的run()方法中,将Runnable作为任务提交给Thread,或者使用线程池的execute(Runnable)方法处理。 pu 阅读全文
posted @ 2021-09-16 08:12 小黑说Java 阅读(3166) 评论(0) 推荐(3) 编辑
摘要: 并发编程之:BlockingQueue 大家好,我是小黑,一个在互联网苟且偷生的农民工。 队列 学过数据结构的同学应该都知道,队列是数据结构中一种特殊的线性表结构,和平时使用的List,Set这些数据结构相比有点特殊,它的特殊之处在于它只允许在队列的头部(Head)进行删除操作,在尾部(Tail)进行插入操作,这种方式的队列我们称之为先进 阅读全文
posted @ 2021-09-09 21:56 小黑说Java 阅读(672) 评论(2) 推荐(1) 编辑
摘要: 并发编程之:JUC并发控制工具 大家好,我是小黑,一个在互联网苟且偷生的农民工。 在上一期我们讲了Thread.join()方法和CountDownLatch,这两者都可以做到等待一个线程执行完毕之后当前线程继续执行,并且CountDownLatch要更优秀,能满足同时等待多个线程执行,我们通过查看源码知道CountDownLat 阅读全文
posted @ 2021-09-07 19:37 小黑说Java 阅读(309) 评论(0) 推荐(0) 编辑