08 2021 档案

摘要:一、内连接 关键字:inner join on 语句:select * from a_table a inner join b_table b on a.a_id = b.b_id; 说明:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集部分。 二、左连接 关键字:left joi 阅读全文
posted @ 2021-08-31 21:26 Jcpeng_std 阅读(838) 评论(0) 推荐(0) 编辑
摘要:linux系统开机流程 1. 机器开机通电bios质检,质检通过后,bios会根据boot菜单,选择从硬盘启动。 2. 读取硬盘中的MBR(主引导记录),加载引导程序(linux中是grub),grub程序会加载系统kernel和虚拟文件系统。 3. 系统会运行init程序,该进程会读取/etc/i 阅读全文
posted @ 2021-08-30 22:12 Jcpeng_std 阅读(694) 评论(0) 推荐(0) 编辑
摘要:C++11线程库:原始的c++标准仅支持单线程编程,新的C++标准(C++11或C++110x)于2011年发布,引入了新的线程库。 编译器要求: Linux: gcc 4.8.1 (完全并发支持) Windows: Visual Studio 2012以上 and MingW 在linux下的编译 阅读全文
posted @ 2021-08-29 20:56 Jcpeng_std 阅读(960) 评论(0) 推荐(0) 编辑
摘要:1 查看磁盘空间大小 df命令用于查看磁盘分区上的磁盘空间,包括使用了多少,还剩多少,默认单位是KB。比如以下命令: df -hl 执行结果如下: 执行的结果每列的含义: 第一列Filesystem,磁盘分区 第二列Size,磁盘分区的大小 第三列Used,已使用的空间 第四列Avail,可用的空间 阅读全文
posted @ 2021-08-28 20:53 Jcpeng_std 阅读(3069) 评论(0) 推荐(0) 编辑
摘要:MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。MVCC在MySQL InnoDB中的实现主要是为了提高数据库并发性能,用更好的方式去处理读-写 阅读全文
posted @ 2021-08-27 20:15 Jcpeng_std 阅读(2947) 评论(0) 推荐(0) 编辑
摘要:1 vector vector和数组类似,拥有一段连续的内存空间,并且起始地址不变;因此能高效的进行随机存取,时间复杂度为o(1);但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n);另外,当数组中内存空间不够时,会重新申请一块内存空间并进行内存拷贝。 2 阅读全文
posted @ 2021-08-26 21:44 Jcpeng_std 阅读(738) 评论(0) 推荐(0) 编辑
摘要:1 引用 C++是C语言的继承,它可进行过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。引用就是C++对C语言的重要扩充。引用就是某一变量的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标 阅读全文
posted @ 2021-08-25 21:09 Jcpeng_std 阅读(815) 评论(0) 推荐(0) 编辑
摘要:在平时客户端socket开发中,如果客户端连续不断的向服务端发送数据包时,服务端接收的数据会出现两个数据包粘在一起的情况,这就是TCP协议中经常会遇到的粘包以及拆包的问题。 TCP属于传输层的协议,传输层除了有TCP协议外还有UDP协议。但UDP不会发生粘包或拆包的现象,因为UDP是基于报文发送的, 阅读全文
posted @ 2021-08-24 21:43 Jcpeng_std 阅读(1139) 评论(0) 推荐(1) 编辑
摘要:动态链接库是程序运行时加载的库,当动态链接库正确部署之后,运行的多个程序可以使用同一个加载到内存中的动态库,因此在 Linux 中动态链接库也可称之为共享库。动态链接库是目标文件的集合,目标文件在动态链接库中的组织方式是按照特殊方式形成的。库中函数和变量的地址使用的是相对地址(静态库中使用的是绝对地 阅读全文
posted @ 2021-08-23 21:32 Jcpeng_std 阅读(1664) 评论(0) 推荐(0) 编辑
摘要:1 信号类型 在Linux操作系统下,可以通过命令kill -l 来查看当前系统中存在的信号名称和编号: 信号的说明: #define SIGHUP 1 /* Hangup (POSIX). 终端连接断开信号*/ #define SIGINT 2 /* Interrupt (ANSI). 中断信号, 阅读全文
posted @ 2021-08-22 21:45 Jcpeng_std 阅读(395) 评论(0) 推荐(0) 编辑
摘要:在IO多路复用技术中,epoll默认的事件触发模式为Level_triggered(水平触发)模式,即当被监控的文件描述符上有可读/写事件发生时,epoll_wait()会通知处理程序去读写。如果没有把数据一次性全部读写完(如读写缓冲区太小),那么下次调用 epoll_wait()时,它还会通知在上 阅读全文
posted @ 2021-08-21 14:12 Jcpeng_std 阅读(2219) 评论(0) 推荐(0) 编辑
摘要:基于DPDK 的OVS 数据包处理流程 1)OVS 的内核态空间接收到网卡的中断通知后,通过用户空间的I/O(userspace I/O,UIO) 驱动轮询模块接收到网卡发来的数据包,用户态空间通过DPDK 的PMD 收端口驱动直接接收来自网卡的报文。 2)用户态空间收取到报文之后,从数据包中提取由 阅读全文
posted @ 2021-08-20 19:12 Jcpeng_std 阅读(1087) 评论(0) 推荐(0) 编辑
摘要:1 什么是死锁 所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。 举个例子来描述,如果此时有一个线程A,按照先锁a再获得锁b的的顺序获得锁,而在此同时又有另外一个线程B,按照先锁b再锁a的顺序获得锁。 2 产生死锁的原因 阅读全文
posted @ 2021-08-19 20:00 Jcpeng_std 阅读(345) 评论(0) 推荐(0) 编辑
摘要:一、HTTP协议和TCP协议 HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序 阅读全文
posted @ 2021-08-18 20:57 Jcpeng_std 阅读(1008) 评论(0) 推荐(0) 编辑
摘要:Open vSwitch中有多个命令,分别有不同的作用,大致如下: ovs-vsctl用于控制ovs db ovs-ofctl用于管理OpenFlow switch 的 flow ovs-dpctl用于管理ovs的datapath ovs-appctl用于查询和管理ovs daemon 1 控制管理 阅读全文
posted @ 2021-08-17 19:47 Jcpeng_std 阅读(4082) 评论(0) 推荐(1) 编辑
摘要:Linux操作系统下使用不同的命令工具可以从不同的角度查看进程状态,常用的进程查看命令如下: 1 ps命令 ps命令的作用是查看静态的进程统计信息(Processes Statistic),常见的选项如下: 1)a:显示当前终端下的所有进程信息,包括其他用户的进程。 2)u:使用以用户为主的格式输出 阅读全文
posted @ 2021-08-16 22:18 Jcpeng_std 阅读(3806) 评论(0) 推荐(0) 编辑
摘要:1.new是C++关键字,需要编译器支持;malloc是库函数,需要头文件支持。 2.使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的大小。 3.new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无须进行 阅读全文
posted @ 2021-08-15 22:14 Jcpeng_std 阅读(589) 评论(0) 推荐(0) 编辑
摘要:二叉搜索树 二叉搜索树又称二叉排序树和二叉查找树,它要么是空树,要么是具有下列性质的二叉树: 1)每个节点都有一个作为查找依据的关键码。所有节点的关键码互不相同; 2)若它的左子树不为空,则左子树上所有节点的关键码均小于根节点的关键码; 3)若它的右子树不为空,则右子树上所有节点的关键码均大于根节点 阅读全文
posted @ 2021-08-14 23:07 Jcpeng_std 阅读(256) 评论(0) 推荐(0) 编辑
摘要:Linux操作系统下要对C/C++程序进行调试,就必须在编译源文件时,使用-g参数,编译时使用的命令为(gcc -g test.c -o test)。 编译完成后,启动GDB调试工具,命名为:gdb + 要调试程序的程序名。GDB调试基本命令如下: 1 list/l 命令 可以使用list/l命令查 阅读全文
posted @ 2021-08-13 22:51 Jcpeng_std 阅读(991) 评论(0) 推荐(0) 编辑
摘要:TCP协议中有四种计时器(Timer),分别是: 1.重传计时器:Retransmission Timer 2.坚持计时器:Persistent Timer 3.保活计时器:Keeplive Timer 4.时间等待计时器:Timer_Wait Timer 1 重传计时器 RTT:发送一个数据包到收 阅读全文
posted @ 2021-08-12 22:22 Jcpeng_std 阅读(527) 评论(0) 推荐(0) 编辑
摘要:编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址。 如果是有效的 IPv4 地址,返回 "IPv4" ; 如果是有效的 IPv6 地址,返回 "IPv6" ; 如果不是上述类型的 IP 地址,返回 "Neither" 。 IPv4 地址由十进制数和点来表示,每个地址包含 4 阅读全文
posted @ 2021-08-11 23:20 Jcpeng_std 阅读(1391) 评论(0) 推荐(0) 编辑
摘要:Valgrind memcheck是用于构建动态分析工具的探测框架。它包括一个工具集,每个工具执行某种类型的调试、分析或类似的任务,以帮助完善你的程序。Valgrind的架构是模块化的,所以可以容易地创建新的工具而又不会扰乱现有的结构。 许多有用的工具被作为标准而提供。 1.Memcheck是一个内 阅读全文
posted @ 2021-08-10 20:07 Jcpeng_std 阅读(807) 评论(0) 推荐(0) 编辑
摘要:一般而言,我们会根据针对的协议类型和攻击方式的不同,把 DDoS 分成SYN Flood、ACK Flood、UDP Flood、NTP Flood、SSDP Flood、DNS Flood、HTTP Flood、ICMP Flood、CC等类型。 而反射型DDoS攻击则是DDoS攻击中较巧妙的一种 阅读全文
posted @ 2021-08-09 20:10 Jcpeng_std 阅读(1352) 评论(0) 推荐(1) 编辑
摘要:观察者模式(Observer),又叫发布-订阅模式(Publish/Subscribe):定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都要得到通知并自动更新。 观察者模式从根本上讲必须包含两个角色:观察者和被观察对象。 被观察对象自身应该包含一个容器来存放观察者对 阅读全文
posted @ 2021-08-08 22:40 Jcpeng_std 阅读(352) 评论(0) 推荐(0) 编辑
摘要:单例模式顾名思义,保证一个类仅可以有一个实例化对象,并且提供一个可以访问它的全局接口。实现单例模式必须注意一下几点: 单例类只能由一个实例化对象。 单例类必须自己提供一个实例化对象。 单例类必须提供一个可以访问唯一实例化对象的接口。 单例模式分为懒汉和饿汉两种实现方式。 懒汉单例模式 懒汉:故名思义 阅读全文
posted @ 2021-08-07 22:26 Jcpeng_std 阅读(48) 评论(0) 推荐(0) 编辑
摘要:策略模式是指定义一系列的算法,把它们单独封装起来,并且使它们可以互相替换,使得算法可以独立于使用它的客户端而变化,也是说这些算法所完成的功能类型是一样的,对外接口也是一样的,只是不同的策略为引起环境角色(持有一个策略类的引用,最终给客户端调用)表现出不同的行为。 相比于使用大量的if...else, 阅读全文
posted @ 2021-08-06 21:34 Jcpeng_std 阅读(424) 评论(0) 推荐(0) 编辑
摘要:在工厂模式中,创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式作为一种创建模式,一般在创建复杂对象时,考虑使用;在创建简单对象时,建议直接new完成一个实例对象的创建。 简单工厂模式 简单工厂模式主要特点是需要在工厂类中做判断,从而创造相应的产品,当增加新 阅读全文
posted @ 2021-08-05 21:52 Jcpeng_std 阅读(223) 评论(0) 推荐(0) 编辑
摘要:C++中multiset容器是STL模板<set>库中一个非常有用的类型,它可以看成一个序列,插入一个数,删除一个数都能够在O(logn)的时间内完成,而且他能时刻保证序列中的数是有序的,而且序列中可以存在重复的数(而set容器要求两两不同,且不保证有序)。 常用成员函数 insert(elem): 阅读全文
posted @ 2021-08-04 22:59 Jcpeng_std 阅读(3052) 评论(0) 推荐(3) 编辑
摘要:C++中的虚函数的作用主要是实现多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。 虚函数表 C++ 虚函数(Virtua 阅读全文
posted @ 2021-08-03 21:39 Jcpeng_std 阅读(291) 评论(0) 推荐(0) 编辑
摘要:参考:HTTPS的加密流程|一篇文章读懂HTTPS及其背后的加密原理|HTTPS协议详解|Https加密过程|Https握手过程 一、HTTPS与HTTP的区别 HTTPS(全称: Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通 阅读全文
posted @ 2021-08-02 22:15 Jcpeng_std 阅读(2009) 评论(0) 推荐(0) 编辑
摘要:在Linux系统控制命令行使用top命令,可以查看正在运行的进程和系统负载信息,包括cpu负载、内存使用、各个进程所占系统资源等,top可以以一定频率更新这些统计信息。 默认输出 top命令的默认输出如下: 上半部分显示了整体系统负载情况 top:从左到右依次为当前系统时间,系统运行的时间,系统在之 阅读全文
posted @ 2021-08-01 21:30 Jcpeng_std 阅读(790) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示