阅读书籍
文章平均质量分 95
ByteX
学而时习之不亦说乎!
展开
-
《数据密集型应用》
这是一本很不错的书。原创 2023-06-14 11:31:04 · 103 阅读 · 0 评论 -
《现代操作系统》
第2章 进程与线程2.1 进程2.1.1 进程模型在进程模型中, 计算机上所有可运行的软件, 通常也包括操作系统, 被组织成若干顺序进程(sequential process) , 简称进程(process) 。 一个进程就是一个正在执行程序的实例, 包括程序计数器、寄存器和变量的当前值。这里的关键思想是: 一个进程是某种类型的一个活动, 它有程序、 输入、 输出以及状态。 单个处理器可以被若干进程共享, 它使用某种调度算法决定何时停止一个进程的工作, 并转而为另一个进程提供服务。2.1.2原创 2022-03-16 13:21:37 · 2764 阅读 · 0 评论 -
《领域驱动设计》
模型在领域驱动设计中的作用模型和设计的核心互相影响。正是模型与实现之间的紧密联系才使模型变得有用,并确保我们在模型中所进行的分析能够转化为最终产品(即一个可运行的程序)。模型与实现之间的这种紧密结合在维护和后续开发期间也会很有用,因为我们可以基于对模型的理解来解释代码。模型是团队所有成员使用的通用语言的中枢。由于模型与实现之间的关联,开发人员可以使用该语言来讨论程序。他们可以在无需翻译的情况下与领域专家进行沟通。而且,由于该语言是基于模型的,因此我们可借助自然语言对模型本身进行精化。模型是浓缩的知识原创 2021-10-14 11:07:53 · 212 阅读 · 0 评论 -
《Redis设计与实现》
简单动态字符串2.1 SDS的定义struct sdshdr { // 记录 buf 数组中已使用字节的数量 // 等于 SDS 所保存字符串的长度 int len; // 记录 buf 数组中未使用字节的数量 int free; // 字节数组,用于保存字符串 char buf[];};2.2 SDS 与 C 字符串的区别常数复杂度获取字符串长度杜绝缓冲区溢出减少修改字符串时带来的内存重分配次数空间预分配: 当 SDS 的原创 2021-07-11 18:39:37 · 709 阅读 · 0 评论 -
《MySQL技术内幕——InnoDB存储引擎》
MySQL体系结构和存储引擎1.1 定义数据库和实例数据库:物理操作系统文件或其他形式文件类型的集合。实例:MYSQL数据库由一个后台线程以及一个共享内存区构成。1.2 MySQL体系架构连接者:不同语言的代码程序和mysql的交互(SQL交互)1、连接池 管理、缓冲用户的连接,线程处理等需要缓存的需求2、管理服务和工具组件 系统管理和控制工具,例如备份恢复、Mysql复制、集群等...原创 2020-05-23 10:18:16 · 699 阅读 · 1 评论 -
《Java 并发编程实战》
简介1.1 并发简史进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程——资源分配的最小单位。线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。线程——程序执行的最小单位。线程会共享进程范围内的资源,如文件句柄和内存句柄,但是每个线程都有各自的程序计数器、栈以及局部变量。由于同一进程中的所有线程都将共享进程的内存空间,因此这些线程 都能访问相同的变量并在同一堆上分配对象,因此造成的多个线程访问同一个变量的问题。1.2 线程的优势发挥多处理器的强大原创 2020-06-10 11:44:47 · 643 阅读 · 0 评论 -
《Java 并发编程的艺术》
并发编程的挑战1.1 上下文切换CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换。如何减少上下文切换:无锁并发编程。多线程竞争锁时,会引起上下文切换,所以多线程处理数据时,可以用一些办法来避免使用锁,如将数据的ID按照Hash算法取模分段,不同的线程处理不同段的数据。CAS算法。Java的Atomic包使用CAS算法来更原创 2020-06-27 11:08:01 · 305 阅读 · 0 评论 -
《高性能MYSQL》
MYSQL的架构和历史1.1 MYSQL逻辑架构当外部代码能够在活动自然完成之前,把它改为完成状态,那个这个活动被称为可取消的。原创 2020-07-26 17:04:22 · 1529 阅读 · 0 评论 -
《深入理解Java虚拟机》
1.2 Java技术体系Java技术体系可分为4个平台,分别为:Java内存区域与内存溢出异常2.2 运行时数据区域Java虚拟机在执行Java程序的过程中,会把它所管理的内存划分为若干不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户现场的启动和结束而创建和销毁。2.2.1 程序计数器线程有自己的私有内存区。2....原创 2020-10-12 23:07:53 · 271 阅读 · 2 评论 -
《Spring Cloud微服务实战》
基础知识微服务架构微服务是系统架构中的一种设计风格。将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的REST API进行通信协作。每个小型服务维护自身的数据存储,业务开发,独立测试案例以及独立部署机制。轻量级的通信协作基础,使得这些服务可以用不同语言编写。微服务架构的九大特性2.1服务组件化组件,是一个可以独立更换和升级的单元,且不会影响到其他单元。在微服务架构中,需要我们对服务进行组件化分解。服务,是一种进程外的组件。每一个服务原创 2021-09-24 15:50:07 · 541 阅读 · 0 评论 -
《Spring源码深度解析》
Spring整体架构和环境搭建Spring整体架构Spring Core:框架的最基础部分,提供 IoC 容器,对 bean 进行管理。Spring Context:继承BeanFactory,提供上下文信息,扩展出JNDI、EJB、电子邮件、国际化等功能。Spring DAO:提供了JDBC的抽象层,还提供了声明性事务管理方法。Spring ORM:提供了JPA、JDO、Hibernate、MyBatis 等ORM映射层.Spring AOP:集成了所有AOP功能Spring Web:提供原创 2021-07-07 08:59:59 · 45840 阅读 · 6 评论 -
《Effective JAVA 》
Effective JAVA 读书笔记看第二遍,仔细做笔记1. 用静态工厂方法代替构造器优势:静态工厂方法有具体名称每次调用静态工厂方法时返回的是提前构造好的实例可以返回原返回类型任何子类型的对象创建参数化类型实例,代码较简洁例如以下,通过静态工厂方法,确保获取KBServiceImpl的单例public class KBServiceImpl extends KBServ...原创 2019-06-17 16:01:59 · 125 阅读 · 0 评论