自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 问答 (7)
  • 收藏
  • 关注

原创 java基础知识点总结

java基础知识点

2022-06-18 16:55:17 318 1

转载 Box-cox变换与反变换

暂时还未仔细研究整理,先转载一个不错的博客https://blog.csdn.net/weixin_44405644/article/details/108045328

2022-04-27 10:13:23 387

原创 画图工具matplotlib即seaborn使用

分类情况plt.figure(figsize = (10, 5))plt.subplot(1, 2, 1)# sns.countplot:柱状图sns.countplot(x = 'Survived', data = train)plt.title('Survival count')plt.subplot(1, 2, 2)# pie: 饼状图plt.pie([nonsurvived_sum, survived_sum], labels = ['not survived', 'survi

2022-04-08 17:08:32 840

原创 cmake生成和链接静态库示例

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)PROJECT(my_muduo C CXX)SET(CMAKE_BUILD_TYPE "Debug")SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ansi -ped

2021-12-17 13:36:02 710

原创 第14/16/17章 高级I/O函数、非阻塞I/O以及ioctl操作

一、高级I/O函数二、非阻塞I/O三、ioctl操作

2021-11-28 14:16:26 212

原创 第8/22章 UDP套接字编程

文章目录一、概述二、recvfrom和sendto函数三、UDP回射服务器和客户端程序3.1 服务端程序3.2 客户端程序四、UDP服务器程序的面临的各种情况4.1 数据报的丢失一、概述使用UDP编写的一些常见的应用程序有:DNS(域名系统)、NFS(网络文件系统)和SNMP(简单网络管理协议)。二、recvfrom和sendto函数这两个函数类似于标准的read和write函数,不过需要三个额外的参数#include <sys/socket.h>ssize_t recvfrom

2021-11-24 17:31:43 1751

原创 基于成本的优化

2021-11-24 15:09:14 197

原创 第7章 套接字选项

文章目录一、概述二、getsockopt和setsockopt函数三、通用套接字选项3.1 SO_BROADCAST套接字选项3.2 SO_DEBUG套接字选项3.3 SO_DONTROUTE套接字选项3.4 SO_ERROR套接字选项3.5 SO_KEEPALIVE套接字选项3.6 SO_LINGER套接字选项3.7 SO_RCVBUF和SO_SNDBUF套接字选项一、概述有几种常用方法来获取和设置影响套接字选项:getsockopt和setsockopt函数fcntl函数ioctl函数二

2021-11-22 14:09:47 1965

原创 第六章 select和poll函数

一、I/O复用前面提到,当客户阻塞于fgets时,服务器进程若被杀死,虽然会给客户端发送FIN,但客户端看不到这个EOF,直到从套接字读。这样的进程需要一种预先告知内核的能力,使内核一旦发现进程指定的一个或多个I/O条件就绪,就通知进程。这个能力称为I/O复用(multiplexing)。I/O复用通常用于服务器设计:(1)处理多个连接,或者同时处理监听套接字和连接套接字(2)同时处理TCP协议和UDP协议(3)同时处理多个服务二、I/O模型2.1 阻塞I/O模型默认情况下,所有套接字都是阻

2021-11-19 14:24:38 2392

原创 B+树索引及其使用

一、B+树索引二、B+树索引的使用

2021-11-17 18:00:42 319

原创 第五章-TCP服务器程序及相应情况处理

一、概述

2021-11-11 16:46:59 2227

原创 InnoDB记录存储结构和数据页结构

文章目录一、InnoDB记录存储结构1.1 COMPACT行格式1.2 REDUNDANT行格式1.3 DYNAMIC和COMPRESSED行格式二、InnoDB数据页结构2.1 数据页结构2.1 记录在页中的存储2.2 页目录(Page Directory)2.3 页面头部(Page Header)2.4 文件头部(File Header)2.5 文件尾部(File Tailer)一、InnoDB记录存储结构我们平时是以记录为单位向表中插入数据的,这些记录在磁盘上的存放形式也被称为行格式或记录格

2021-11-10 18:17:33 1069

原创 背包问题总结

关于常数优化:for (int i = 1; i <= n; i++) { int bound = max(V - sum{c[i + 1]...c[n]}, c[i]); for (int j = V; j >= bound, j--) f[j] = max(f[j], f[j - c[i]] + w[i]);}由转移方程f[i][j]=max(f[i−1][j],f[i−1][j−c[i]]+w[i])可知,要得到最后的f[n][V], 只需要已知f

2021-11-10 12:57:17 61

原创 第三-四章 TCP套接字相关API

一、套接字编程简介1.1 套接字地址结构大多数套接字函数都需要一个指向套接字地址结构的指针作为参数。每个协议族都定义它自己的套接字地址结构。这些结构的名字均以**sockaddr_**开头,并以对应每个协议族的唯一后缀结尾。IPv4套接字地址结构以sockaddr_in命名,定义在netinet/in.h中:struct sockaddr_in{ uint8_t sin_len; //length of structure sa_family_t sin_family; //

2021-11-09 15:44:39 3088

原创 第二章-传输层:TCP、UDP和SCTP

一、总图SCTP: 流控制传输协议(Stream Control Transmission Protocol)。SCTP是一个提供可靠全双工关联的面向连接的协议。所谓关联,因为SCTP是多宿的,从而每个关联的两端均涉及一组IP地址和一个端口号。SCTP提供消息服务,也就是维护来自应用层的记录边界。ICMP:网际控制消息协议(Internet Control Message Protocol)。ICMP处理在路由器和主机之间流通的错误和控制消息。这些消息通常由TCP/IP网络支持软件本身(而不是用户进

2021-11-09 14:20:35 1620

原创 第十五章-进程间通信

一、管道

2021-10-30 16:26:30 67

原创 第十四章-高级I/O

高级I/O包括:非阻塞I/O、记录锁、I/O多路复用(select和poll)、异步I/O、readv、writev函数以及存储映射函数(mmap)。

2021-10-26 18:19:53 108

原创 第十三章-守护进程

守护进程(daemon)是生存周期长的一种进程。常在系统导入时启动,仅在系统关闭时终止。因为它们没有控制终端,所以是在后台运行。一、守护进程的特征ps命令打印系统中各个进程的状态,该命令有多个选项。ps -axj//ps -efj-a 显示由其他用户拥有的进程的状态-x 显示没有终端的进程的状态-j 显示与作业有关的信息:会话ID、进程组ID、控制终端以及终端进程组ID系统进程依赖于操作系统实现。父进程ID为0的各进程通常是内核进程,它们作为系统引导装入过程的一部分而启动(init是个例外

2021-10-25 18:28:40 275

原创 第十二章-线程控制

一、线程属性二、同步属性三、重入四、线程特定数据线程特定数据(thread-specific data),也称为线程私有数据(thread-private data),是存储和查询某个特定线程相关数据的一种机制。在分配线程特定数据之前,需要创建与该数据关联的键。这个键用于获取对线程特定数据的访问:#include <pthread.h>int pthread_key_create(pthread_key_t* keyp, void (*destructor)(void*));创

2021-10-24 15:24:14 164

原创 第十一章-线程

一、线程标识进程ID在整个系统中是唯一的,但线程ID只在它所属的进程上下文中才有意义。进程ID是用pid_t类型来表示的,是一个非负整数;线程ID是用pthread_t类型来表示的,pthread_t用一个结构实现(不同的系统实现不同),所以不能作为整数处理。必须使用一个函数来对两个线程ID进行比较#include <pthread.h>int pthread_equal(pthread_t tid1, pthread_t tid2);//相等,返回非0值;不等,返回0线程可以通

2021-10-23 17:42:17 72

原创 第十章-信号

信号是软件终端,提供了一种处理异步事件的方法。一、信号概念很多条件可产生信号:用户终端按键。如Ctrl+C产生中断信号SIGINT硬件异常产生信号。除数为0或引用无效内存等,通常由硬件检测到并通知内核,然后内核向进程产生信号。如对执行无效内存引用的进程发送SIGSEGV调用kill(2)函数将任意信号发送给另一个进程或进程组检测到某种软件条件已经发生,并应将其通知有关进程时,产生信号。例如在网络连接上传来的带外数据(SIGURG)、在管道的读进程终止后,一个进程写此管道(SIGPIPE)以及进

2021-10-22 16:37:06 253

原创 第九章-进程关系

一、终端登录二、网络登录三、进程组

2021-10-20 19:59:09 238

原创 第八章-进程控制

一、进程标识每个进程都有一个非负整型表示唯一的进程ID。但是进程ID时可复用的,当一个进程终止后,其进程ID就成为复用的候选者。1.1 系统专用进程0号进程。ID为0的通常为调度进程,常被称为交换进程。该进程是内核的一部分,并不执行任何磁盘上的程序,因此也被称为系统进程。1号进程。ID为1的通常是init进程。该进程的程序文件在新版本中是/sbin/init。此进程负责在自举内核后启动一个UNIX系统。init通常读取与系统有关的初始化文件,并将系统引导到一个状态(如多用户)。init进程决不会终

2021-10-18 16:51:12 288

原创 第七章-进程环境

一、main函数

2021-10-08 20:33:54 69

原创 第五章-标准I/O库

一、流和FILE对象第三章中,所有I/O函数都是围绕文件描述符的。当打开文件

2021-10-08 15:45:33 55

原创 第四章-文件和目录

一、函数stat、fstat、fstatat和lstat

2021-10-07 17:15:52 45

原创 第三章-文件I/O

一、相关函数1.open#include <fcntl.h>int open(const char* path, int oflag, .../mode_t mode/);//成功返回文件描述符,失败返回-1path参数为要打开或创建文件的名字,oflag用下面一个或多个常量“或”运算(只列出常用):O_RDONLY:只读打开O_WRONLY:只写打开O_RDWR:读写打开O_EXEC:只执行打开O_SEARCH:只搜索打开(应用与目录)以上五个必须指定一个,且只能指定

2021-10-07 14:40:21 63

原创 七、学习Shell Scripts

一、scripts的撰写与执行撰写注意事项:(1)指令执行时从上而下,从左而右的分析与执行(2)指令、选项与参数间的多个空白都会被忽略;空白行以及tab都会被忽略(3)读取到一个Enter符号(CR),就尝试开始执行该命令(4)若一行内容太多,这可以使用“[Enter]”来延伸至下一行(5)"#"可作为注释符执行方式:例如/home/syf/shell.sh直接下达指令:shell.sh文件必须要具备可读可执行权限(rx)(1)绝对路径执行:/home/syf/shell.sh(2)

2021-10-06 16:12:03 197

原创 第四章-表

一、索引组织表在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表。每张表都有个主键,如果在创建表时没有显式地定义主键,则InnoDB会按如下方式选择或创建主键:(1)首先判断表中是否有非空的唯一索引(Unique NOT NULL),如果有,则该列即为主键(2)如果无,InnoDB会自动创建一个6字节大小的指针注:主键的选择根据的是定义索引的顺序,而不是建表时刻的顺序二、InnoDB逻辑存储结构从逻辑角度,所有数据被存放在一个空间中,称之为表空间(tables

2021-10-05 19:36:19 83

原创 六、认识与学习BASH

一、Shell的变量功能1.1 变量的取用与设置:echo, 变量设置规则,unset取用变量:echo# echo $变量# echo ${变量}上述两种都可以。设置和修改变量:# echo ${myname} //变量内容默认为空# myname=syf变量设置规则:(1)’='左右不能有空格(2)变量名称只可以是英文字母与数字,且开头字符不能是数字(3)若该变量需要在其他子程序中执行,则需要以export来使变量变成环境变量:“export PATH”还有很多其他规则

2021-10-05 17:11:54 151

原创 五、文件与文件系统的压缩,打包与备份

一、Linux常见的压缩指令常见的压缩文件扩展名.Z compress程序压缩的文件.zip zip程序压缩的文件.gz gzip程序压缩的文件.bz2 bzip2程序压缩的文件.xz xz程序压缩的文件.tar tar程序打包的数据,并没有压缩过.tar.gz tar打包并经过gzip压缩.tar.bz2 tar打包并经过bzip2压缩.tar.xz tar打包并经过xz压缩常见的压缩指令为gzip, bzip2,以及最新的xz。tar可以将很多文件(包括目

2021-10-05 15:24:27 232

原创 第五章-索引与算法

一、InnoDB存储引擎索引概述二、数据结构与算法三、B+树四、B+树索引五、Cardinality值六、B+树索引的使用七、哈希算法八、全文检索

2021-10-03 15:54:44 86

原创 三、Linux文件与目录管理

一、可执行路径的变量:$PATHecho $PATH显示出目前PATH每个目录之间用冒号隔开。可以看到/usr/bin在PATH变量中,所以在任何地方都能执行ls。添加目录:PATH="${PATH}:/root"以上语句将/root加入PATH。...

2021-10-03 15:19:29 70

原创 四、Linux磁盘与文件系统管理

111

2021-10-03 13:12:53 9003

原创 二、Linux文件权限与目录配置

一、Linux文件属性键入命令行 “ls -al”,查看当前目录下所有文件(包括目录)属性选项:a: 查看隐藏文件及目录l:以列表形式显示分别表示权限、链接数、拥有者、群组、文件大小、最后修改日期、文件名。权限:第一栏十个字符例如 “- rwx rwx r-x”第1个字符:文件类型d: 目录-: 文件l : 链接文件(link file)b: 可供存储的周边设备c:一次性读取设备(外设等)接下来三组字符,每组3个,分别代表拥有者,群组,其他人的权限3个字符分别表示可读、可写、

2021-10-03 13:11:11 815

原创 一、计算机概论

一.计算机五大单元输入单元、输出单元、CPU内部的控制单元、算数逻辑单元和内存。1.1CPU架构所有单元都是由CPU内部的控制单元来负责协调的。CPU内部含有一些微指令(按CPU架构不同分为精简指令集与复杂指令集)位:所谓的位是指CPU一次数据读取的最大量。64位CPU代表CPU一次可以读写64bits的数据2.2内存CPU所使用的数据都来自内存,内存主要元件为动态随机存取内存(Dynamic Random Access Memory, DRAM),通电时记录与使用,断电后数据消失。SRAM

2021-10-02 14:57:18 102

原创 第四部分-设计与声明

条款22:将成员变量声明为private。条款23:以non-member、non-friend替换member函数考虑下例:class WebBrowser{public: ... void clearCache(); void clearHistory(); void removeCookies();};如果想定义某个操作调用上述三个函数,可以另外定义一个成员函数:public: ... void clearEverything();//依次调用上述三个函数;另一个做法是

2021-10-01 16:20:23 86

原创 第三部分-资源管理

条款13:

2021-09-30 21:04:51 64

原创 第二部分-构造/析构/赋值运算

条款05:编译器可为class创建默认的构造函数、析构函数、拷贝构造函数、拷贝赋值运算符。条款06:拒绝编译器自动生成的函数做法。例如不希望使用class的默认拷贝函数和默认拷贝赋值运算符,有两种做法:1.将函数声明为private。此时对象无法调用此函数(编译期就报错)。但是此方法不是绝对安全,因为成员函数和友元函数仍然可以调用,此时连接器会报错。为了将连接期错误转移到编译期(更早侦测出错误),使用方法2.2.定义uncopyable的base classclass Uncopyable

2021-09-30 19:51:44 65

原创 第一部分-习惯C++

条款02:尽量以const,enum,inline替换#define可以理解为用“编译器”替换“预处理器”,因为#define不被视为语言的一部分。#define 实现的是替换一、#define ASPECT_RATIO 1.653可能在编译器开始处理源码前,ASPECT_RATIO就被替换成1.653了,所以记号名称ASPECT_RATIO没有进入记号表(symbol table)内。当使用此常量出现编译错误时,错误信息也许只会提到1.653而不是ASPECT_RATIO,为调试带来了困难。解

2021-09-30 16:56:05 66

空空如也

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

TA关注的人

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