摘要: [《UNIX 传奇:历史与回忆》](https://book.douban.com/subject/35292726) 是 bwk([Brian W. Kernighan](https://en.wikipedia.org/wiki/Brian_Kernighan))2019 年的新作,回忆了 UN 阅读全文
posted @ 2023-08-05 16:05 mghio 阅读(239) 评论(0) 推荐(1) 编辑
摘要: ## 前言 Goroutines 是 [Go](https://go.dev) 语言主要的并发原语。它看起来非常像线程,但是相比于线程它的**创建和管理成本很低**。Go 在运行时将 goroutine 有效地调度到真实的线程上,以避免浪费资源,因此您可以轻松地创建大量的 goroutine(例如每 阅读全文
posted @ 2023-07-09 16:24 mghio 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 前言 大部分人在日常的业务开发中,其实很少去关注数据库的事务相关问题,基本上都是 CURD 一把梭。正好最近在看 MySQL 的相关基础知识,其中对于幻读问题之前一直没有理解深刻,今天就来聊聊「InnoDB 是如何解决幻读的」,话不多说,下面进入主题。 事务隔离级别 事务隔离是数据库处理的基础之一, 阅读全文
posted @ 2023-04-05 17:15 mghio 阅读(255) 评论(0) 推荐(1) 编辑
摘要: 前言 首先需要明确的是 TCP 是一个可靠传输协议,它的所有特点最终都是为了这个可靠传输服务。在网上看到过很多文章讲 TCP 连接的三次握手和断开连接的四次挥手,但是都太过于理论,看完感觉总是似懂非懂。反复思考过后,觉得我自己还是偏工程型的人,要学习这些理论性的知识,最好的方式还是要通过实际案例来理 阅读全文
posted @ 2022-11-06 16:29 mghio 阅读(523) 评论(0) 推荐(3) 编辑
摘要: 前言 在 Spring 框架中有很多实用的功能,不需要写大量的配置代码,只需添加几个注解即可开启。 其中一个重要原因是那些 @EnableXXX 注解,它可以让你通过在配置类加上简单的注解来快速地开启诸如事务管理(@EnableTransactionManagement)、Spring MVC(@E 阅读全文
posted @ 2022-05-22 12:53 mghio 阅读(346) 评论(0) 推荐(1) 编辑
摘要: 一维码(条形码) 在介绍二维码之前,先来看看它的“大哥”一维码,一维码也叫条形码(好像在日常生活中都是叫这个),它是由不同宽度的黑条和白条按照一定的顺序排列组成的平行线图案,它的宽度记录着数据信息,长度没有记录信息,条形码常用于标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点 阅读全文
posted @ 2022-01-09 16:03 mghio 阅读(909) 评论(0) 推荐(0) 编辑
摘要: 前言 在并发编程中,当多个线程同时访问同一个共享的可变变量时,会产生不确定的结果,所以要编写线程安全的代码,其本质上是对这些可变的共享变量的访问操作进行管理。导致这种不确定结果的原因就是可见性、有序性和原子性问题,Java 为解决可见性和有序性问题引入了 Java 内存模型,使用互斥方案(其核心实现 阅读全文
posted @ 2021-08-22 15:13 mghio 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 前言 在我们日常开发的分层结构的应用程序中,为了各层之间互相解耦,一般都会定义不同的对象用来在不同层之间传递数据,因此,就有了各种 XXXDTO、XXXVO、XXXBO 等基于数据库对象派生出来的对象,当在不同层之间传输数据时,不可避免地经常需要将这些对象进行相互转换。 此时一般处理两种处理方式:① 阅读全文
posted @ 2021-08-09 09:21 mghio 阅读(1063) 评论(0) 推荐(2) 编辑
摘要: 前言 异步编程是让程序并发运行的一种手段。它允许多个事情同时发生,当程序调用需要长时间运行的方法时,它不会阻塞当前的执行流程,程序可以继续运行,当方法执行完成时通知给主线程根据需要获取其执行结果或者失败异常的原因。 使用异步编程可以大大提高我们程序的吞吐量,可以更好的面对更高的并发场景并更好的利用现 阅读全文
posted @ 2021-08-01 19:16 mghio 阅读(11188) 评论(0) 推荐(1) 编辑
摘要: 什么是 Fork/Join 框架 Fork/Join 框架是一种在 JDk 7 引入的线程池,用于并行执行把一个大任务拆成多个小任务并行执行,最终汇总每个小任务结果得到大任务结果的特殊任务。通过其命名也很容易看出框架主要分为 Fork 和 Join 两个阶段,第一阶段 Fork 是把一个大任务拆分为 阅读全文
posted @ 2021-07-25 21:42 mghio 阅读(541) 评论(0) 推荐(0) 编辑