自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 Mysql事务

例如事务T1对一个表中所有的行的某个数据项做了从“1”修改为“2”的操作,这时事务T2又对这个表中插入了一行数据项,而这个数据项的数值还是为“1”并且提交给数据库。而操作事务T1的用户如果再查看刚刚修改的数据,会发现还有一行没有修改,其实这行是从事务T2中添加的,就好像产生幻觉一样,这就是发生了幻读。」隔离级别下,可以很大程度上避免幻读现象的发生(注意是很大程度避免,并不是彻底避免),所以 MySQL 并不会使用「串行化」隔离级别来避免幻读现象的发生,因为使用「串行化」隔离级别会影响性能。

2024-03-23 21:53:15 893

原创 IO复用之epoll

IO多路复用

2024-03-22 20:29:04 623

原创 Mysql索引学习

mysql使用较多的存储引擎:InnoDB、MyISAM等,其中InnoDB支持的索引是B+树索引、Hash索引、全文索引,MyISAM使用的是Hash索引。数据库数据保存在磁盘上,且为了提高性能,每次只将部分数据读入内存,众所周知,访问磁盘的成本是访问内存的十万倍左右,因此,我们需要一种高效的搜索方式。根据磁盘IO的特点,我们的诉求:每次查找数据时将磁盘的IO次数控制在很小的数量级,最好是常数数量级,于是 B+ 树应运而生。按「字段特性」分类:主键索引、唯一索引、普通索引、前缀索引。

2024-03-01 17:07:24 304

原创 HashMap学习

hashmap学习,自网上多篇文章汇总

2024-02-25 22:48:29 1157

原创 epoll LT ET个人笔记

个人感觉这篇总结很好,对函数有了解的直接看,还有牛客例题。关于epoll的ET和LT模型的相关知识点汇总。

2023-07-08 19:20:13 482

原创 [muduo学习笔记]事件分发器(Channel、Poller)

muduo中的channel和poller

2023-06-29 19:03:08 617

原创 三种代理服务器

代理服务器以及代理服务器的分类

2023-06-21 17:52:02 783

原创 vscode 安装 golang插件,报错 permission denied(已解决)

给自己看的,解决方法很粗糙,慎入

2022-06-12 21:43:33 1080 1

原创 【问题已解决】安装mysql时遇到的问题及解决

问题已解决

2022-05-28 16:32:30 267

原创 [6.824]RPC and Thread

线程线程允许一个程序同时做很多事情 每个线程串行执行,就像普通的非线程程序一样 线程共享内存 每个线程都包含一些每个线程的状态: 程序计数器,寄存器,堆栈,它在等待什么为什么是线程1. 输入输出并发 客户端并行向许多服务器发送请求并等待回复。 服务器处理多个客户端请求;每个请求都可能阻塞。 在等待磁盘为客户端 X 读取数据时, 处理来自客户端 Y 的请求。2. 多核性能 在多个内核上并行执行代码。3. 方便 在后台,每秒检查

2022-05-04 21:15:25 289

原创 [Raft]论文学习

—笔记AbstractRaft 是一种共识算法,用于管理复制的日志共识算法本质上是复制状态机的实现,用于解决分布式系统中的各种容错问题.通常使用每个服务器中存在的复制日志(命令序列)来实现状态机命令序列:?状态机状态:共识模块的工作是确保复制的日志在整个群集中保持一致。因此,状态机是确定性的,即每个状态机计算相同的状态和相同的输出序列。为了提高可理解性 , Raft分离了共识的关键要素,如领导者选举,日志复制和安全,它执行了更强的一致性,以减少必须考虑的状态数量.领导者选举:Ra

2022-05-04 15:57:29 917

原创 [Raft]Fault Tolerance

一 Raft elections and log handling (Lab 2A, 2B) 选举和日志处理1. a pattern in the fault-tolerant systems容错系统的一种模式 * MR replicates computation(复制计算) but relies on a single master to organize * GFS replicates data but relies on the master to pick primaries(选择初

2022-05-04 15:10:50 661

原创 [学习笔记]muduo(1)

看书后的小总结

2022-03-31 21:49:57 184

原创 cmake语法汇总

参考cmake使用教程(实操版)以hello-world为例//main.cpp#include<iostream>int main(){ std::cout << "hello world" << endl;}Project用来指定工程的名字和语言PROJECT (HELLO) //所有语言PROJECT (HELLO CXX) //C++PROJECT (HELLO C CXX) //C 和 C++这个指令隐式的指

2022-03-31 21:48:27 272

原创 muduo日志学习笔记

日志笔记

2022-03-18 08:42:09 280

原创 WebServer涉及到的函数功能参考

函数功能快看

2022-03-17 17:07:00 1286

原创 蓝桥杯练题<1>

蓝桥杯练题

2021-12-18 19:12:51 238

原创 Golang+vscode开发环境配置(Linux)

准备软件Vs CodeGoLang download下载安装到指定目录中即可,记住解压到这个目录的路径。我这里是/usr/local。配置工作环境mkdir -p $HOME/goproject/{bin,src,pkg}ls $HOME/goproject环境变量vi $HOME/.bashrc//添加以下命令export GOROOT=/usr/local/goexport GOPATH=$HOME/golangexport PATH=$PATH:$GOROOT/bin:

2021-11-15 21:43:07 704

原创 检测到 #include 错误。请更新 includePath<解决>

起因检测到 #include 错误。请更新 includePath。安装软件及gcc、g++等包参考此文章点此这篇文章的官网链接用不成,重新找了一篇文章点此mingw-get: *** INFO *** setup: unpacking mingw-get-0.6.3-mingw32-pre-20170905-1-bin.tar.xzmingw-get: *** INFO *** setup: unpacking mingw-get-0.6.3-mingw32-pre-20170905-

2021-09-28 16:53:22 9153

原创 2020——xiyouLinux面试题

1.请试着解释其输出。int main(int argc , char *argv[]) { unsigned char a = 255; char ch = 128; a -= ch; printf("a = %d ch = %d\n", a, ch);}涉及到取值范围的问题2.下面代码的运行输出结果是什么,并说说你的理解。int main(int argc, char *argv[]) { char *str = "Xi You Linux Group 2

2021-08-16 22:16:34 219

原创 2019——xiyouLinux面试题

1.解释下面 C 语言代码段中每一句的语义。int main(int argc, char *argv[]) { int val = 2018; // 将 2018 赋值给 int 型变量 val int *pi = 2019; // pi = &val; // *pi = 0; // return 0; //}...

2021-08-16 21:59:05 191

原创 第二章、信息的表示和处理(深入理解计算机系统)

文章目录前言2.1前言2.1

2021-08-13 11:39:42 128

原创 Lecture 01 Course Overview

内存访问方式两者运行性能相差有20倍,为什么仅仅是嵌套方式的变化便产生了这么大的差距?这与内存层次结构中的缓存有关,看图:这张图片显示了四种不同的内存访问方式,基本上复制程序的吞吐量是以 兆字节/秒 为单位的。这这里,不深入细节,我们看到的是,这两个函数在内存访问模式中处于不同的位置,一行接一行的访问方法比一列接一列的访问方法好很多,这和内存层次结构中的缓存有关。扩展实验(了解即可)实现一个函数返回其输入参数的绝对值,条件是限制使用的运算符类型,它必须是顺序执行的代码没有条件或循环(如

2021-08-12 15:06:21 104

原创 第一章--计算机系统漫游(深入理解计算机系统)

文章目录1.1 信息就是位+上下文1.2 程序被其他程序翻译成不同的格式1.3了解编译系统如何工作的好处1.4 处理器读并解释储存在内存中的指令1.4.1 系统的硬件组成1.4.2 运行hello程序1.5 高速缓存至关重要1.6 储存设备形成层次结构1.7 操作系统管理硬件1.7.1 进程1.7.2 线程1.7.3 虚拟内存1.7.4 文件1.8 系统之间通过网络通信1.9 重要主题1.9.1 Amdahl 定律1.9.2 并发(concurrency)和并行(parallellism)1.9.3 计算机

2021-08-11 21:07:48 213

原创 信号集、信号屏蔽字/pending集的处理

文章目录一、信号集二、信号屏蔽字的处理一、信号集 #include <signal.h> int sigemptyset(sigset_t *set); //初始化当前的信号集,并将所有信号排除在外 int sigfillset(sigset_t *set); //将所有信号的信号集设置为满 int sigaddset(sigset_t *set, int signum); //往信号集中增添信号 int sigdelset(sigset_t *set, int sig

2021-08-11 10:54:34 154

原创 数据库学习(1)

一、为什么要学习数据库二、数据库的相关概念DBMS 数据库管理系统(Database Management System)。数据库是通过DBMS创建和操作的容器 常见的数据库管理系统:MySQL、Oracle、DB2、SqlServerDB 数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据SQL 结构化查询语言(Structure Query Language):专门用来与数据库通信的语言 优点: 1、支持范围广

2021-08-10 08:36:26 235

原创 数据库表实例

/*SQLyog Ultimate v10.00 Beta1MySQL - 5.5.15 : Database - myemployees**********************************************************************/ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS

2021-08-09 20:50:06 625

原创 wait() waitpid()

文章目录参考参考waitwait() 和 waitpid() 详解

2021-08-07 19:47:51 105

原创 XiYou-Linux 2018年面试题

文章目录第一题第二题第三题第四题第五题第六题第七题第八题第九题第十题第十一题第十二题第十三题第一题int main(int argc, char *argv[]) { int nums[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; printf("%d\n", nums[1][-2] ); printf("%d\n", (-1)[nums][5] ); printf("%d\n", -1[nums][5] ); return 0; }

2021-08-05 20:23:28 129

原创 du命令的简单实现

文章目录标题会用到的一些相关函数dustrchr代码标题会用到的一些相关函数duman du:Summarize disk usage of the set of FILEs, recursively for directories作用:看当前文件或目录所占空间的大小(k数)stat ctags 文件:ctags 大小:4096 块:8 IO 块:4096 目录设备:10308h/66312d Inode:6294771

2021-08-02 21:20:06 326 1

原创 写聊天室的过程中出现的问题

文章目录第一第二第三第一有关套接字,服务器端套接字创建的时候用的是fd,创建线程时换成了sock_fd,运行服务器端没有出问题,客户端一运行就直接退出,后来用了gcc -I/usr/local/mysql/include/mysql main_cli.c -L/usr/local/mysql/lib -lmysqlclient -ldl -lpthread -o main_cli -g -fsanitize=address这条命令后面的错误检查功能,发现问题是没有套接字,把fd换掉,可以运行第二服务

2021-08-02 09:54:37 643

原创 tcsetattr()

解释csetattr函数用于设置终端的相关参数。参数fd为打开的终端文件描述符,参数optional_actions用于控制修改起作用的时间,而结构体termios_p中保存了要修改的参数。optional_actions可以取如下的值。TCSANOW:不等数据传输完毕就立即改变属性。TCSADRAIN:等待所有数据传输结束才改变属性。TCSAFLUSH:清空输入输出缓冲区才改变属性。错误信息:EBADF:非法的文件描述符。EINTR:tcsetattr函数调用被信号中断。EINVAL:

2021-07-22 21:10:28 4490

原创 目录函数glob、opendir、readdir、closedir

分析、读取目录有两种方式一、glob二、opendir readdir closedir rewenddir fseek seekdir talldir接下来只说glob()函数#include <glob.h>int glob(const char *pattern, int flags,int (*errfunc) (const char *epath, int eerrno),glob_t *pglob);void globfree(glob_t *p

2021-07-22 09:01:51 287

原创 epoll(man文档部分摘录)

来自man文档文章目录epoll_create描述返回值 RETURN VALUEepoll_ctl参数:epoll_wait参数epoll_create #include <sys/epoll.h> int epoll_create(int size);epoll_create() creates a new epoll(7) instance. Since Linux 2.6.8, the size argument is ignored, but must be gre

2021-07-21 15:02:44 188

原创 生产者消费者问题(条件变量)

文章目录生产者消费者问题使用条件变量解决条件变量概念相关函数组成参考生产者消费者问题使用条件变量解决条件变量概念条件变量视是线程可用的另一种同步机制。条件变量给多个线程提供了一个汇合的场所。条件变量与互斥量一起使用时,允许线程以无竞争的方式等待特定的条件发生条件本身是由互斥量保护的。线程在改变条件状态之前必须首先锁住互斥量。其他线程在获得互斥量之前不会察觉到这种改变,因为互斥量必须在锁住以后才能计算条件。相关函数#include <pthread.h>pthread_cond_t

2021-07-15 10:33:35 361

原创 基于IPV4的流媒体广播系统

项目需求目前需要实现基于客户机和服务器模型的网络音频广/点播系统本音频系统可以广泛应用在语音教室和公共广播等多种场所。该软件分为服务器和客户端两个部分,服务器运行在PC机上,客户机可运行在PC机或嵌入式设备上,服务器以多播的形式向局域网中所有客户机发送数据,客户机可以根据自己的选择来决定要接收的数据。以收音机为例,server端一直跑,当你打开客户端,就会接收到从server端发送的信息,有多个频道可以选择点播歌曲:选择歌曲,并将其加入歌单(待播放队列)这个项目主要强调音频方面的内容,视频方面

2021-06-10 23:13:56 1117

原创 哲学家进餐问题(同步)

文章目录1.问题描述2.问题分析1.记录型信号量2.利用记录性信号解决哲学家进餐问题方案一方案二方案三--利用AND信号量机制解决问题参考本文章参考b站视频BV1Xk41q7RK1.问题描述有五个哲学家围在一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五支筷子,他们的生活方式是交替的进行思考和进餐。平时,一个哲学家进行思考,饥饿时便试图取用其左右最靠近他的筷子,只有在他拿到两支筷子时才能进餐。进餐完毕后,放下筷子继续思考。2.问题分析1.记录型信号量先操作,后判断wait(Semap

2021-05-22 16:02:49 814

原创 进程同步——生产者与消费者问题

文章目录问题描述分析过程用AND信号解决生产者-消费者问题代码实现此文章参考b站视频 BV1Xk4y1q7RK问题描述在同一个进程地址空间内执行两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放一个空缓冲区。当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻挡,直到新的物品被生产出来。分析1.不能向满存2.不能向空取3.同一

2021-05-20 20:06:47 735

原创 限流算法之漏桶与令牌桶

什么是限流在业务场景中,我们会遇到有百万甚至更加大的用户请求流量来访问接口,或者在业务对接过程中,业务提供方的访问频率控制,等等我们的业务都需要做限流处理,这个时候如果不做任何保护措施,服务器就会承受很大的处理压力,请求量很高,服务器负载也很高,并且当请求超过服务器承载极限的时候,系统就会崩溃,导致所有人都不能访问。为了应用服务的高可用,一个常用的办法是对大流量的请求(秒杀/抢购)进行限流,拦截掉大部分请求,只允许一部分请求真正进入后端服务器,这样就可以防止大量请求造成系统压力过大导致的系统崩溃,从而保

2021-05-06 20:54:38 258

原创 鸟哥第十章自我总结

www

2021-04-28 22:50:09 80

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除