2 高镜皓

学生身份

我要认证

本人比较喜欢高性能服务器开发。 在校曾获奖: 中国大学生计算机设计大赛省赛一等奖; 龙鼎杯河北二等奖; 蓝桥杯省赛三等奖; CCPC河北省赛三等奖;

等级
TA的排名 6w+

解决ubuntu无法使用root登录问题

ubuntu16.04解决root登录问题修改/etc/ssh/sshd_config文件,把PermitRootLogin Prohibit-password 添加#注释掉新添加:PermitRootLogin yesubuntu14.04解决root登录问题sudo vi /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf在末端添加下面两行命令greeter-show-manual-login=true #手工输入登陆系统的

2020-08-07 19:24:45

红黑树------插入结点

红黑树的优势首先红黑树是不符合AVL树的平衡条件的,即每个节点的左子树和右子树的高度最多差1的二叉查找树。但是提出了为节点增加颜色,红黑树是用非严格的平衡来换取增删节点时候旋转次数的降低,任何不平衡都会在三次旋转之内解决,而AVL是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多,所以红黑树的插入效率更高。红黑树能够以O(log2 (n)) 的时间复杂度进行搜索、插入、删除操作简单来说红黑树就是为了解决二叉查找树的缺陷,因为二叉查找树在某些情况下会退化成一个线

2020-07-08 21:28:25

tcp udp数据报定义结构体

文章链接:https://codemouse.online/archives/2020-06-30-21-08-22tcp udp数据报定义结构体由于结构体写在结构体里面容易出现结构体内存对齐问题,需要将对齐值改为1,防止出错。#pragma pack(1) //设置对齐数udp报文头定义:struct udphdr { unsigned short sport; unsigned short dport; unsigned short length; unsigned s

2020-06-30 21:09:43

内存池设计

文章链接:https://codemouse.online/archives/2020-06-26-23-50-33内存池在日常的写代码中,经常有需要申请内存的时候,但是频繁的申请释放会特别的浪费时间,于是衍生了内存池,由内存池帮忙管理内存,内存池帮忙统一释放,免去了用户的频繁释放,申请内存只需要从内存池中已经申请好的内存中取出,如果没有大于需求的内存,则内存池再去申请一块回来。内存池增强了程序员对内存碎片话的管理,加快了内存的使用速度。这个内存池的模型是参考了nginx内使用的内存池,相当于一个简

2020-06-30 20:43:42

tcp协议详解(tcp面试常问问题)

文章链接:https://codemouse.online/archives/2020-06-30202243协议头struct tcphdr { unsigned short sport; unsigned short dport; unsigned int seq; unsigned int ack; unsigned char hdrlen:4 resc:4; unsigned char cwr:1, ece:1, urg:1, ack:1, psh

2020-06-30 20:39:51

QT学习01------信号与槽

文章链接:https://codemouse.online/archives/2020-06-27-23-10-46乱码问题与QString转化为char*乱码就在需要输出中问的文件上加上这个宏#pragma execution_character_set(“utf-8”)QString 转成 char *.ToUtf8() 转为 QByteArray.Data() 转为 char *按钮控件常用API创建 QPushButton * btn = new QPushButto

2020-06-30 20:38:32

高性能服务器C10K到C1000K到C10M的转变路程

文章链接:https://codemouse.online/archives/2020-06-26-17-51-36网络五元组五元组标识一个网络fd的唯一网络fd --> 五元组(sip,dip,sport,dport,proto)c1000k服务器的并发量条件(百万并发)服务器能够承载的客户端数量。(最基本条件)5w以上的应供应操作。(也就是客户端的5%)对数据库的操作。磁盘的操作。(日志,文件。。)CPU占用率60%。(留下40%用来应付突发情况)内存占用率80%。系统限

2020-06-26 18:00:22

protobuf安装及其简单使用

文章链接:https://codemouse.online/archives/2020-06-22163236protocol buffers 是什么?Protocol buffers 是一种语言中立,平台无关,可扩展的序列化数据的格式,可用于通信协议,数据存储等。Protocol buffers 在序列化数据方面,它是灵活的,高效的。相比于 XML 来说,Protocol buffers 更加小巧,更加快速,更加简单。一旦定义了要处理的数据的数据结构之后,就可以利用 Protocol buffer

2020-06-24 23:31:22

OpenSSL库之内存分配

文章链接:https://codemouse.online/archives/2020-06-20223142内存分配用户在使用内存时,容易犯的错误就是内存泄露。当用户调用内存分配和释放函数时,查找内存泄露比较麻烦。OpenSSL提供了内置的内存分配/释放函数。如果用户完全调用OpenSSL的内存分配和释放函数,可以方便的找到内存泄露点。OpenSSL分配内存时,在其内部维护一个内存分配哈希表,用于存放已经分配但未释放的内存信息。当用户申请内存分配时,在哈希表中添加此项信息,内存释放时删除该信息。当用

2020-06-24 23:30:44

OpenSSL库之哈希表

文章链接:https://codemouse.online/archives/2020-06-20175758哈希表在一般的数据结构如线性表和树中,记录在结构中的相对位置是与记录的关键字之间不存在确定的关系,在结构中查找记录时需进行一系列的关键字比较。这一类查找方法建立在“比较”的基础上,查找的效率与比较次数密切相关。理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立确定的对应关系,使每个关键字和结构中一个唯一的存储位置相对应。在查找时,只需根据这个对应关系找到给定值。这

2020-06-24 23:30:10

OpenSSL之简介,安装及组成介绍

文章链接:https://codemouse.online/archives/2020-06-20185901OpenSSLOpenSSL是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。OpenSSL采

2020-06-24 23:29:31

XML从入门到放弃

文章链接:https://codemouse.online/archives/2020-06-16XML 简介目的使用 XML 标记语言可以做到数据或数据结构在任何编程语言环境下的共享。例如 我们在某个计算机平台上用某种编程语言编写了一些数据或数据结构,然后用 XML 标 记语言进行处理,那样的话,其他人就可以在其他的计算机平台上来访问这些数据或数 据结构,甚至可以用其他的编程语言来操作这些数据或数据结构了。这就是 XML 标记 语言作为一种数据交换语言存在的价值。XML和HTML的区别XML 和

2020-06-24 23:28:49

Json从入门到放弃

文章链接:https://codemouse.online/archives/2020-06-16-22-08-11Json 语法范例:{ "name": "milo", "age": 80, "professional": { "english": 4, "putonghua": 2, "computer": 3, }, "languages": ["C++", "C"], "phone"

2020-06-24 23:28:18

Mongodb的安装与使用(从入门到放弃)

文章链接:https://codemouse.online/archives/2020-06-16174938为什么要用NoSQL随着互联网的不断发展,各种类型的应用层出不穷,所以导致在这个云计算的时代,对技术提出了更多的需求。虽然关 系型数据库已经在业界的数据存储方面占据不可动摇的地位,但是由于其天生的几个限制,使其很难满足上面这几个 需求:扩展困难、读写慢、成木高、有限的支撑容量。但是 NOSQL关注的是对数据高并发地读写和对海量数据的存储 等,与关系型数据库相比,它们在架构和数据模型方面做了ˆ减法

2020-06-24 23:27:32

互斥锁,条件等待,读写锁,自旋锁,原子操作,CAS操作

文章链接:https://codemouse.online/archives/2020-06-09145446互斥锁(mutex)用在执行长的代码块效率较高,如果只是执行一条少的指令,速度不如自旋锁和原子锁。如果被锁住,线程回去休眠等待,不占用系统资源。由于共享区域执行时间长,所以速度快。API:#include <pthread.h>//动态初始化:int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pth

2020-06-24 23:26:45

线程池的封装实现

文章链接:https://codemouse.online/archives/2020-06-08154227线程常用函数创建线程函数———pthread_create函数#include <pthread.h>int pthread_create(pthread_t * thread, const pthread_arrt_t* attr,void*(*start_routine)(void *), void* arg);参数说明:(1)thread参数是新线程的标识符,为一个

2020-06-24 23:25:37

异步http客户端

文章链接:https://codemouse.online/archives/2020-06-07180358做法流程1. init_context a.pthread_create b.epoll_create2.uninit_context() a.pthread_cannel b.close3.commit() a.准备socket b.connect c.protocol; dns/http/redis/mysql d.send e.epoll_ctl(add,sockfd

2020-06-24 23:23:36

Nginx安装与使用(从入门到放弃)

文章链接:https://codemouse.online/archives/2020-06-06204126Nginx 特性NGINX 有什么不同? NGINX 使用可扩展的事件驱动架构,而不是更传统的过程驱动架构。这需要更低的内存占用,并且当并发连接扩大时,使内存使用更可预测。在传统的 Web 服务器体系结构中,每个客户端连接作为一个单独的进程或线程处理,随着网站的流行度增加,并发连接数量的增加,Web 服务器减慢,延迟了对用户的响应。从技术的角度来看,产生一个单独的进程/线程需要将 CPU

2020-06-24 23:22:26

通过消息机制,传送shell结果

文章链接:https://codemouse.online/archives/2020-06-06202119common.h#pragma once#include<stdio.h>#include<sys/types.h>#include<sys/ipc.h>#include<sys/msg.h>#include<errno.h>#include<string.h>#define _PATH_ "."#def

2020-06-24 23:21:41

操作系统(进程调度模拟课设)

文章链接:https://codemouse.online/archives/2020-06-04160950需求(1)用C语言(或其它语言,如Java)编程实现对N个进程采用某种进程调度算法(如动态优先权调度算法、先来先服务算法、短进程优先算法、时间片轮转调度算法)调度执行的模拟。(2)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段:进程标识数ID。进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高。进程已占用CPU时间CPUTIME。进程还需占用的CPU时间

2020-06-24 23:20:50

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。