<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wait2023的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/wait2023</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; wait2023]]></copyright><item><title><![CDATA[CSAPP—动态内存分配]]></title><link>https://blog.csdn.net/wait2023/article/details/129211769</link><guid>https://blog.csdn.net/wait2023/article/details/129211769</guid><author>wait2023</author><pubDate>Sat, 25 Feb 2023 09:22:00 +0800</pubDate><description><![CDATA[针对csapp虚拟内存管理中malloc内存分配器实现后的一些总结，书中是通过隐式链表来进行内存管理，并且采用的是双字对齐（字：4B，双字：8B）]]></description><category></category></item><item><title><![CDATA[LinuxC—网络套接字]]></title><link>https://blog.csdn.net/wait2023/article/details/128808013</link><guid>https://blog.csdn.net/wait2023/article/details/128808013</guid><author>wait2023</author><pubDate>Mon, 30 Jan 2023 20:04:25 +0800</pubDate><description><![CDATA[大端存储与小端存储主机字节序和网络字节序若两个主机的字节序存储方式不同，直接传输的数据被对方接收后会就会使完全错误的，为了避免这种情况发生，从而引入主机字节序(host)和网络字节序(network)。]]></description><category></category></item><item><title><![CDATA[LinuxC—进程通信]]></title><link>https://blog.csdn.net/wait2023/article/details/128807989</link><guid>https://blog.csdn.net/wait2023/article/details/128807989</guid><author>wait2023</author><pubDate>Mon, 30 Jan 2023 20:01:28 +0800</pubDate><description><![CDATA[定义匿名管道用来实现具有亲缘关系的进程之间的通信，匿名管道是由内核创建的一块内存区域，返回这块区域对应的文件描述符后，进程间可以通过这个文件描述符的操作来进行通信。特点相关函数1024。]]></description><category></category></item><item><title><![CDATA[LinuxC—管道模拟]]></title><link>https://blog.csdn.net/wait2023/article/details/128766993</link><guid>https://blog.csdn.net/wait2023/article/details/128766993</guid><author>wait2023</author><pubDate>Thu, 26 Jan 2023 19:08:32 +0800</pubDate><description><![CDATA[实现一个管道，管道可以让多线程读写数据。]]></description><category></category></item><item><title><![CDATA[LinuxC—高级IO]]></title><link>https://blog.csdn.net/wait2023/article/details/128766000</link><guid>https://blog.csdn.net/wait2023/article/details/128766000</guid><author>wait2023</author><pubDate>Thu, 26 Jan 2023 16:13:02 +0800</pubDate><description><![CDATA[定义有限状态机(Finite State Machine) 缩写为 FSM，状态机有 3 个组成部分：状态、事件、动作。作用自然流程即解决问题的直接思路。]]></description><category></category></item><item><title><![CDATA[LinuxC—线程]]></title><link>https://blog.csdn.net/wait2023/article/details/128765948</link><guid>https://blog.csdn.net/wait2023/article/details/128765948</guid><author>wait2023</author><pubDate>Thu, 26 Jan 2023 16:09:05 +0800</pubDate><description><![CDATA[什么是线程进程其实是一个容器，当我们在编程的时候实际上是在以线程为单位进行编程，包括处理器的调度也是以线程为单位的，一个进程可以有多个线程，一个进程的多个线程共享相同的进程空间，所以多线程之间的并发要比多进程之间的并发更加容易。线程标准线程是先有标准再有实现，所谓的pthread就是posix标准的实现线程标识符posix下的线程标识符就是pthread_t，这个数据可以是一个整数，也可以是一个结构体，所以不能单纯的将其当做一个整数来使用。]]></description><category></category></item><item><title><![CDATA[LinuxC—信号]]></title><link>https://blog.csdn.net/wait2023/article/details/128647728</link><guid>https://blog.csdn.net/wait2023/article/details/128647728</guid><author>wait2023</author><pubDate>Wed, 11 Jan 2023 17:02:56 +0800</pubDate><description><![CDATA[kill(2) 给pid进程发送sig信号定义pid的选择pid > 0，就是给pid对应的进程发信号pid =0，给调用该方法的进程的同组进程发送sig信号，即组内广播pid = -1 ，sig会被发送给当前进程能够发送信号的所有进程，除了init进程pid < -1，会将sig发送给进程组ID为-pid的进程sig = 0时为检测pid进程或-pid进程组是否存在返回值：成功返回0失败返回-1，同时设置errnoraise(3) 给当前进程发送一个信号，自己给自己发。]]></description><category></category></item><item><title><![CDATA[LinuxC—进程]]></title><link>https://blog.csdn.net/wait2023/article/details/128635845</link><guid>https://blog.csdn.net/wait2023/article/details/128635845</guid><author>wait2023</author><pubDate>Tue, 10 Jan 2023 20:28:40 +0800</pubDate><description><![CDATA[基本概念类型pid_t，是一个有符号16位整数，进程号是顺次向下使用(fd是优先使用当前可用最小的)shell中的ps命令能够查看当前系统的进程信息快照相关函数。]]></description><category></category></item><item><title><![CDATA[LinuxC—文件系统学习笔记]]></title><link>https://blog.csdn.net/wait2023/article/details/128584702</link><guid>https://blog.csdn.net/wait2023/article/details/128584702</guid><author>wait2023</author><pubDate>Fri, 06 Jan 2023 20:44:41 +0800</pubDate><description><![CDATA[相关函数stat() 得到file指向的文件并将其属性回填到buf中，面对符号链接文件时获取的是所指向的目标文件的属性fstat() 得到fd指向的文件并将其属性回填到buf中lstat() 得到file指向的文件并将其属性回填到buf中，面对符号链接文件时获取的符号链接文件的属性stat结构体umask0666&0002作用：防止产生权限过松的文件。]]></description><category></category></item><item><title><![CDATA[LinuxC—标准IO与文件IO学习笔记]]></title><link>https://blog.csdn.net/wait2023/article/details/128576921</link><guid>https://blog.csdn.net/wait2023/article/details/128576921</guid><author>wait2023</author><pubDate>Fri, 06 Jan 2023 12:53:09 +0800</pubDate><description><![CDATA[sysio是直接实现用户态切换内核态，sysio和平台是有关系的，比如windows和linux，而stdio标准IO提供了一系列标准接口使用，不用去关心平台的限制(stdio底层是依赖sysio实现的)，所以stdio的可移植性比sysio好。]]></description><category></category></item><item><title><![CDATA[数据结构C语言描述]]></title><link>https://blog.csdn.net/wait2023/article/details/128571105</link><guid>https://blog.csdn.net/wait2023/article/details/128571105</guid><author>wait2023</author><pubDate>Thu, 05 Jan 2023 22:08:01 +0800</pubDate><description><![CDATA[顺序存储线性表由数组来实现，就和java中的ArrayList一样头文件1024实现。]]></description><category></category></item><item><title><![CDATA[C语言学习笔记]]></title><link>https://blog.csdn.net/wait2023/article/details/128571048</link><guid>https://blog.csdn.net/wait2023/article/details/128571048</guid><author>wait2023</author><pubDate>Thu, 05 Jan 2023 22:06:13 +0800</pubDate><description><![CDATA[基本类型数值类型整数 short， int， long浮点型 float， double字符型 char构造类型数组结构体 struct共用体 union枚举类型 enum指针类型空类型 void顺序选择: if-else, switch-case循环: while, do-while, for, if-goto辅助控制: continue, break​			数据类型	函数名(【形式参数说明表】)产生及意义。]]></description><category></category></item><item><title><![CDATA[C循环体自动变量地址复用问题]]></title><link>https://blog.csdn.net/wait2023/article/details/127338583</link><guid>https://blog.csdn.net/wait2023/article/details/127338583</guid><author>wait2023</author><pubDate>Sat, 15 Oct 2022 18:31:21 +0800</pubDate><description><![CDATA[运行结果如下：可以看到输出了we are，两个我们输入的字符串，这是因为ss[i]中存储的指针是指向一个通过malloc()申请的内存，这块内存如果我们不主动释放，他是会一直存在的，当再循环体中第二次创建str的时候，str指向的又是一块新的内存，所以ss[0]和ss[1]是指向两个字符串了。下面是错误的代码，主要是为了反应一个问题，就是在C语言中循环体中的自动变量的内存地址是会被复用的。在做《C Primer Plus》第12章课后习题的第9题的过程中发现的一个问题。]]></description><category></category></item><item><title><![CDATA[JVM常见问题总结]]></title><link>https://blog.csdn.net/wait2023/article/details/125351238</link><guid>https://blog.csdn.net/wait2023/article/details/125351238</guid><author>wait2023</author><pubDate>Sat, 18 Jun 2022 20:20:11 +0800</pubDate><description><![CDATA[针对JVM常见问题的总结，主要就是分为JVM内存模型、类加载系统、垃圾回收几个部分，主要参考周志明老师的《深入理解Java虚拟机》一书JVM内存结构指的是JVM运行时数据区的内存分布，共分为五个部分，分别是虚拟机栈、本地方法栈、程序计数器、堆和方法区，其中虚拟机栈，本地方法栈和程序计数器是线程私有的，堆和方法区是线程共享的。对这些分区的接受如下：堆区是用来存放Java对象的地方，我们的Java对象基本都是存放在堆中，同时堆区也是JVM垃圾回收最频繁的地方，可能出现OOM方法区主要存放了类型数据，存在垃圾回收]]></description><category></category></item><item><title><![CDATA[网络IO系统]]></title><link>https://blog.csdn.net/wait2023/article/details/125130069</link><guid>https://blog.csdn.net/wait2023/article/details/125130069</guid><author>wait2023</author><pubDate>Sun, 05 Jun 2022 11:25:10 +0800</pubDate><description><![CDATA[传统的网络文件传输流程如下：将磁盘中的数据拷贝到内核缓冲区中(DMA拷贝)将内核缓冲区中的数据拷贝到用户空间中(CPU拷贝)将数据从用户空间再拷贝到socket缓冲区中(CPU拷贝)将socket中的数据拷贝到网卡中(DMA拷贝)前面两次过程涉及到一次read()系统调用，后面两次过程涉及到一次write()系统调用，整个过程共有两次系统调用，两次CPU拷贝和两次DMA拷贝，可见性能是非常差的，所以需要对传统的文件传输方式进行优化所谓的mmap技术就是将read()系统调用换成了mmap()系统调用，所谓的]]></description><category></category></item><item><title><![CDATA[Spring IOC与AOP]]></title><link>https://blog.csdn.net/wait2023/article/details/125129267</link><guid>https://blog.csdn.net/wait2023/article/details/125129267</guid><author>wait2023</author><pubDate>Sun, 05 Jun 2022 10:15:09 +0800</pubDate><description><![CDATA[目录1 IOC2 AOP2.1 什么是AOP2.2 代理模式2.3 AOP日志中方法互相调用日志答应问题2.4 AOP事务IOC是什么IOC就是控制反转，这是一种设计思想，简而言之就是将我们程序中手动创建的对象交由我们的外部框架来完成，在Spring中这个就是交由Spring的IOC容器来完成，这个IOC容器实际上就是一个map，里面保存了我们的对象IOC有什么作用？IOC有以下作用：使得对象之间的耦合度降低使得我们的资源变得容易管理，因为我们将对象的生成与管理权利交给了我们的IOC容器举个例子来说明以下I]]></description><category></category></item><item><title><![CDATA[Kafka相关知识点总结]]></title><link>https://blog.csdn.net/wait2023/article/details/125089276</link><guid>https://blog.csdn.net/wait2023/article/details/125089276</guid><author>wait2023</author><pubDate>Wed, 01 Jun 2022 19:49:37 +0800</pubDate><description><![CDATA[目录1 介绍下kafka？2 Kafka是怎么设计的？3 为什么要用消息系统？4 Consumer Group机制？5 Consumer的分区分配策略有哪些？6 Reblance机制？7 位移提交？8 kafka 如何保证消费者不会重复消费数据？9 Kafka 在处理海量数据为什么这么快？10 Kafka怎么保证消息可靠传输？11 为什么不让一个partition被同组的多个consumer消费kafka是一款分布式流处理平台，用于实时构件流处理应用。它有一个核心的功能广为人知，即作为企业级的消息引擎被广泛]]></description><category></category></item><item><title><![CDATA[redis缓存相关问题总结]]></title><link>https://blog.csdn.net/wait2023/article/details/125072824</link><guid>https://blog.csdn.net/wait2023/article/details/125072824</guid><author>wait2023</author><pubDate>Tue, 31 May 2022 20:26:30 +0800</pubDate><description><![CDATA[目录1 缓存穿透2 缓存击穿3 缓存雪崩 4 三者对比5 数据库与缓存一致性问题先说一下查询数据的流程吧我们在查询一个key的时候，首选会到Redis中取查询，如果查询到的key不存在，那么我们就会去数据库中查询这个key，如果查询到了，我们就会在缓存中更新这个key并返回数据，这样以后的请求就会在缓存中直接查询到key。但是，如果没有查询到，那么Redis中就一直没有这个key，每次请求都会去查询数据库，由于数据库IO操作要与磁盘交互，相对内存中的操作时非常慢的，倘若这些请求非常之多，那么会给服务器端带来]]></description><category></category></item><item><title><![CDATA[MySQL主从架构]]></title><link>https://blog.csdn.net/wait2023/article/details/124980041</link><guid>https://blog.csdn.net/wait2023/article/details/124980041</guid><author>wait2023</author><pubDate>Thu, 26 May 2022 10:32:06 +0800</pubDate><description><![CDATA[再谈binlog


mysql的高可用架构都是基于binlog来实现的，binog是归档所用，主要两种格式，分别是statements和rows格式，两个格式的区别如下：


	statements

	该格式下的binlog记录的是我们直接执行的语句，比如执行

	
delete * from t where id = 1;

	这是产生的binlog记录的就是这条执行的语句。但是这类binlog存在一个问题就是我们的语句在主库和从库中有可能会通过不同的索引执行，这样就可能会导致主库和从库的不一致性
.]]></description><category></category></item><item><title><![CDATA[MySQL事务和锁]]></title><link>https://blog.csdn.net/wait2023/article/details/124977919</link><guid>https://blog.csdn.net/wait2023/article/details/124977919</guid><author>wait2023</author><pubDate>Thu, 26 May 2022 10:05:40 +0800</pubDate><description><![CDATA[0 引言

针对mysql事务相关知识的总结，分为事务，MVCC和锁三个部分

1 事务与其ACID特性

事务是并发控制的基本单位，是一系列对于数据库的操作，这些操作要么全部成功，要么全部失败，事务由4大特性，分别是原子性，一致性，隔离性和持久性

原子性：一个事务中的操作要么全部成功，要么全部失败
	一致性：事务执行前后，必须保证从一个一致性状态到另一个一致性状态
	隔离性：一个事务中执行的操作对于和他并发执行的事务来说是不可见的
	持久性：一个事务结束后，其对数据库的修改就是永久的，即使发生系统崩溃，]]></description><category></category></item></channel></rss>