自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (2)
  • 收藏
  • 关注

原创 QT Quick学习之路一

QT Quick学习之路介绍何为QT QuickQT Quick 与 QT Widgets的区别?QT Quick基础 QML何为QML?介绍何为QT QuickQT Quick 与 QT Widgets的区别?传统界面库。包括Qt Widgets、wxWidgets、GTK+这些,通过对底层操作系统图形界面的封装来绘制窗体,实现跨平台;像素界面库,用英文讲叫Pixel UI。包括duilib、CEGUI以及我们的主角Qt Quick。这类界面库直接调用底层显卡接口,操作显存中的每个像素。它实际上

2021-03-26 09:46:28 234

原创 C++相关

(1)虚拟内存机制堆是操作系统维护的一块内存,而自由存储是C++中通过new与delete动态分配和释放对象的抽象概念,堆与自由存储区并不等价(2)C++虚函数及其指针 虚函数:实现类的多态 实现原理:虚函数表和虚函数表指针代码的编译阶段,虚表就可以构造出来了虚表指针:一个类只需要一个虚表,它的所有对象共用一个虚函数表(3)smart point原因:C++的动态内存管理:一种是忘记释放内存,会造成内存泄漏;一种是尚有指针引用内存的情况下就释放了它,就会产生引用非法内存的指针。说明:标

2020-07-08 17:24:47 253

原创 常见网络编程问题

常见问题汇总select/poll/epoll的用法非阻塞connect的写法阻塞socket和非阻塞socket的区别send/recv函数的返回值情况SO_REUSEADDR用法nagle算法keeplive选项SO_LINGER选项对于一端出现大量close_wait或者time_wait如何解决通信协议如何设计和解决数据包粘包与分片的问题心跳机制如何设计断线重连机制如何设置对IO多路复用技术的理解收发数据包正确的方式,收发缓冲区如何设计优雅的关闭定时器如何设计epo

2020-07-08 17:09:30 520

原创 Libevent 源码剖析(始)

Libevent 源码剖析二一个实例event结构体从简单使用到源码分析一步步学习一个实例任何一个代码的学习都是从hello world开始的#include <sys/signal.h>#include <event.h>void signal_cb( int fd, short event, void *arg){ struct event_base *base = (struct event_base *)arg; struct timeval de

2020-07-07 17:15:12 169

原创 Libevent源码解读(三)

Libevent源码解读(三)事件主循环事件处理主循环事件主循环根据系统提供的事件多路分发机制执行事件循环,堆已注册的就绪事件,调用注册事件的回调函数来处理事件事件处理主循环Libevent 的事件主循环主要是通过event_base_loop()函数完成的,其主要操作入下面的流程图,event_base_loop所做的就是持续执行下面的循环...

2020-07-06 17:11:31 197

原创 Libevent源码剖析二

Libevent源码剖析:event结构体event结构体Libevent 对 event的管理事件设置的接口函数event_base创建和初始化接口函数libevnt中的事件处理器是event结构类型,主要封装了局柄,事件类型,回调函数,以及其他必要的标志和数据。该结构体在include/event2/event_struct.h文件中定义event结构体struct event { #if 0 struct event_callback { TAILQ_ENTRY(event_callb

2020-07-03 18:44:41 183

转载 EPOLL原理详解

Epoll 详解https://blog.csdn.net/qq_31967569/article/details/89678482

2020-06-30 17:08:39 3463

原创 Libevent 源码剖析一

Libevent 学习及源码剖析(一)libevent概述libevent下载和安装libevent源码组织架构libevent概述Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select

2020-06-05 15:23:27 349

原创 Linux 高性能服务器网络编程(三 IO复用)

Linux 高性能服务器网络编程 IO复用select函数pollepoll系列系统调用内核事件表EPLOLL的LT(水平触发)与ET(边缘触发)EPOLLONESHOT事件select/poll/epoll的区别应用:非阻塞connect信号发送信号Linux信号信号处理函数signalsigaction统一事件源SIGHUP/SIGPIPE/SIGURG定时器socket 选项SO_RECVTIMEO 和 SO_SNDTIMEOSIGALRM信号基于升序链表的定时器IO复用系统调用的超时参数IO复用

2020-06-04 09:58:28 317

原创 Linux 高性能服务器网络编程(二)

Linux 高性能服务器网络编程Linux服务器程序规范日志高性能服务器框架(核心)基本框架IO模型高效的事件处理模式(Reactor/Proactor)Reactor模式(同步IO模型)Proactor(异步IO模型)两种高效的并发模式半同步/半异步领导者/追随者(略)其他提高服务性能的方式池数据复制上下文切换和锁机制参考自《高性能服务器编程》,主要用于学习网络编程模块Linux服务器程序规范日志rsyslogd : 此守护进程既能接收用户进程输出的日志,又能接收内核进程。用户进程调用sysl

2020-06-02 10:18:37 276

原创 Linux 高性能服务器网络编程(一)

Linux 高性能服务器网络编程Linux网络编程基础APISocket 地址API通用socket 地址专用Sokect地址IP地址转换函数创建socket(socket)命名(绑定)socket(bind)监听socket(listen)接收连接accpet发起连接(connect)关闭连接读写操作一个基本的C/S程序地址信息函数SOCKET选项(*)高级IO函数pipe()dup() / dup2()readv() / writev()sendfile()mmap() / munmap()splice

2020-06-01 14:37:38 518

原创 TCP/IP协议学习

TCP/IP网络协议IP协议IP介绍ARP协议TCP协议首部详解TCP连接管理TCP连接的建立与终止TCP的超时重传TCP的数据流与窗口管理延迟ACK(delay_ACK)Nagle 算法流量控制和窗口管理TCP的拥塞控制慢开始和拥塞避免快重传和快恢复TCP的保活机制长连接与短连接短连接长连接区别IP协议> 参考TCP/IP详解卷一(1) TCP 使用不可靠的IP服务,并且提供一个可靠的运输层服务(2) UDP为应用层发送和接受数据报并且为不可靠(3) IP是网络层上的主要协议同时被TCP

2020-05-28 15:09:40 343

原创 操作系统相关学习(2)

操作系统相关学习(2)死锁出现死锁的四个必要条件?处理死锁的策略死锁产生的原因?死锁忽略死锁检测和死锁恢复死锁预防死锁避免死锁多个进程或者线程同时请求资源而出现相互等待的情况出现死锁的四个必要条件?(1)互斥条件。资源只能被同时一个进程使用(2)占有且等待。一个进程本身占有资源(一种或多种),同时还有资源未得到满足,正在等待其他进程释放该资源。(3)不可抢占。资源只能由被它占有的进程显式释放(4)循环等待。死锁发生时一定存在两个进程即以上的环路,环路中每一个进程都在等待下一个进程的资源处

2020-05-26 15:10:06 225

原创 操作系统相关学习(1)

Leetcode 操作系统面试题进程与线程进程,线程与协程的概念,进程与线程的区别多线程与多进程引用的场景?进程上下文切换内核同步,进程同步,线程同步进程间的通信与线程的同步调度消费者生产者问题其他相关问题多进程的TCP服务端,能否互换fork()与accept()的位置?fork()与vfork() 的区别exit() 与_exit()的区别面试中对面试者操作系统方面的考察也是非常重要的,因为操作系统基础就是一个程序猿的内功;而语言则是相当与你的外功。由此操作系统方面的知识是非常重要的, 无论在面试中

2020-05-26 11:57:47 1113

原创 Leetcode 动态规划解决字串与子序列问题

Leetcode 动态规划学习总结利用动态规划解决字串子序列问题动态规划?子串和子序列的区别?最长递增子串与最长递增子序列最长回文子串和最长回文子序列利用动态规划解决字串子序列问题动态规划?通过总结规律找出最优解决方案(数学归纳法)!!!动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类子串和子序列的区别?1.子串是字符串连续不断的一块字符串:例如"abcdefg" 则"bcd" 为其子串;2.子序列中的字符都是字符串的子集,但是一定是顺序上是单调的:例如"abcdefg" 则"ac

2020-05-22 10:22:28 668

海目星AM401程序.7z

海目星AM401程序.7z

2021-04-03

struct_algorithm.zip

/*时间复杂度:最坏的情况O(N^(1.3 - 2)) *shell排序:插入排序的升级,首先它把较大的数据集合分割成若干个小组(逻辑上分组),然后对每一个小组分别进行插入排序, *此时,插入排序所作用的数据量比较小(每一个小组),插入的效率比较高

2020-07-07

空空如也

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

TA关注的人

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