3 Cardiac.TJ

尚未进行身份认证

我要认证

克己勤免

等级
TA的排名 7w+

内存管家

一:项目简介内存管家是一个内存池,它实现了在多核多线程的环境下,效率较高的处理高并发的内存池。它由三层缓存结构组成,三层缓存分别为ThreadCache、CentralCache、PageCache。ThreadCache可以解决多核多线程环境下,锁的竞争问题;CentralCache可以均衡内存资源;PageCache可以解决内存碎片问题。内存碎片:在内存分配的过程中会产生内存碎片,而内存碎...

2019-08-04 18:21:13

资源管理小助手

一:项目介绍本项目是一个支持多人访问的http服务器,在每一个客户端访问服务器的时候可以对其进行目录内的文件列表展示,并且支持文件下载与文件上传的功能,从而达到一个资源共享的目的。二:项目流程1.首先搭建服务器1)为了保证文件下载与文件上传功能的可靠性,该服务器使用TCP协议。TCP协议是一个面向字节流的,可靠 的,面向连接的传输层协议。它的确认应答机制,校验和,序列号,重发机制以及链接管...

2019-08-04 00:41:01

进程调度队列与进程调度算法的学习

引言:在学习了进程创建、进程等待、进程退出后,父进程创建子进程,父子进程谁先执行由它们的优先级决定,这就了解到了进程的调度,本篇为关于进程调度知识的学习。1.为什么要引入调度,引入调度的目的是什么?在计算机操作系统中,可能同时有数百个批处理任务存放在磁盘的中,或者有数百个终端与主机相连接,这样一来内存和处理器等资源便供不应求。如何从这些任务中挑选任务进入主存运行、如何在进程之间分配处理器时间,...

2019-07-17 20:59:54

FLAG

不想进大厂的程序员不是好程序员。 努力,冲鸭!

2019-04-25 12:37:31

网络基础

1.冯洛伊曼理论上是网络,不考虑数据丢失。数据发出网卡收到存在内存CPU(运算,解包自低向上)封装在内存,通过网卡丢出去但是不可距离过长,因为长距离传输容易造成数据的丢失。(Tcp可以解决丢包问题,IP解决查找问题)2.网络的发展独立模式:计算机之间相互独立。网络互联:多台计算机连接在一起,完成数据共享。局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起。(交换...

2019-02-19 16:08:07

IP地址与端口号

1.IP地址IPv4版本的IP地址为4字节,也就是32位网络层的数据报中封装两个IP地址,一个源IP地址(数据报源主机的IP),一个目的IP地址(数据报目的主机的IP)一个数据报的头部不应该只存在源IP地址和目的IP地址,还应该存在一个协议字段告诉应该交给上层的哪一个协议2.端口号《1》基本概念端口号是传输层的概念端口号是一个2字节16位的整数端口号用来标识一个进程...

2019-02-11 11:35:17

智能指针

1.智能指针存在的必要性C++的内存管理是让很多事都需要程序员自己去处理,例如:当我们写一个new语句时,就一定要存在对应的delete语句去释放资源,但是我们不能避免程序还未执行到delete时就跳转了或者在函数中没有执行到最后的delete语句就返回了,如果我们不在每一个可能跳转或者返回的语句前释放资源,就会造成内存泄露。使用智能指针可以很大程度上的避免这个问题,因为智能指针实质上就是一个类...

2019-02-11 04:00:26

异常

1.C语言处理错误的方式终止程序,eg:assert,如果断言为假则终止进程返回错误码。根据错误码查找错误码对应的错误信息,使用广泛C标准库中的setjmp和longjmp组合2.C++的异常处理异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。throw:当问题出现时,程序会抛出一个异常。通过使用throw关键字...

2019-02-11 02:49:32

IO流

1.c语言的IO函数请看本篇博客:https://blog.csdn.net/weixin_41892460/article/details/826892662.c语言的输入与输出C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数 据,并将值存放在变量中。printf(): 将指定的文字/字符串输出到标准输出设备(...

2019-02-11 01:48:48

模版特化及类型萃取

1.非类型模版参数模版参数分为类型形参与非类型形参类型形参:出现在模版参数列表中,跟在class或者typename之类的参数类型名称非类型参数:用一个常量作为类(函数)模版的一个参数,在类(函数)模版中可将该参数当做常量来使用T为类型形参,N为非类型形参template<class T, size_t N = 10>class Array{public: T&a...

2019-02-11 00:52:50

STL简介

1.STL基本概念STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且 是一个包罗数据结构与算法的软件框架。2.STL的版本原始版本 Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意 运用、拷贝、修改、传播商业使用这些代码,无需付费。唯一的...

2019-02-10 03:21:42

【c语言】可变参数

1.基本概念通常将函数实现为可变参数的形式,可以使得函数可以接受1个以上的任意多个参数(不固定)2.实例使用#include<stdlib.h>#include<stdio.h>#include<stdarg.h>int average(int n, ...){//声明一个va_list 类型的变量arg,它用于访问参数列表的未确定部分 ...

2019-02-08 19:35:39

【c语言】函数栈帧

1.函数栈帧的基本概念在调用函数时,为函数开辟栈空间,用于本次函数调用中临时变量的保存与现场保护等等。栈是由高地址向低地址延伸的。寄存器ebp指向当前的栈帧的地步(高地址),寄存器esp指向当前栈帧的顶部(低地址)。2.实例分析代码 #include<stdio.h> int Add(int x, int y) { int z = 0; ...

2019-02-08 17:18:13

读写锁

1.基本概念读写锁就是解决多读少的问题。读写锁支持当没有线程去写入时,多个线程可以同时去共享的访问临界资源,而当临界区没有线程去访问或者没有线程去写的时候才允许该线程去写。这种用于共享访问给定资源的读写锁,也叫共享-独占锁,获取一个读写锁用于读的叫做共享锁,获取一个读写锁用于写的叫做独占锁。2.三种关系读者与读者:共享关系,可以多个线程同时访问写者与写者:互斥关系,当一个线程在写,其他线...

2019-01-29 17:35:40

生产者消费者模型

1.基本概念生产者消费者模型就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里面取出,阻塞队列就相当于一个缓冲区平衡了生产者和消费者的处理能力,这个阻塞队列就是用来给生产者和消费者解耦的。2.优点解耦支持并发支持忙闲不均...

2019-01-28 21:34:32

守护进程

1)守护进程基本概念守护进程也称精灵进程(Daemon),是运⾏在后台的⼀种特殊进程。它独⽴于控制终端并且周期性地执⾏某种任务或等待处理某些发⽣的事件。守护进程是⼀种很有⽤的进程。Linux的⼤多数服务器就是⽤守护进程实现的。⽐如淘宝啦,百度,支付宝这些等等。Linux系统启动时会启动很多系统服务进程,这些系统服务进程没有控制终端,不能直接和⽤户交互。其它进程都是在⽤户登录或运⾏程序时创建,在...

2019-01-22 17:14:32

Linux系统调用接口

open #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int...

2019-01-20 19:35:22

冯诺依曼体系的了解

冯诺依曼体系结构1.框图2.组成输入设备:键盘、鼠标、写板、扫描仪等。中央处理器:含有运算器与控制器等。输出单元:显示器,打印机等。3.注意事项上面所说的存储器指的是内存不考虑缓存情况,CPU只能对内存进行读写,不能访问输入设备或输出设备输入/输出设备要输入或者输出数据,也只能写入内存或者从内存中读取所有设备都只能直接与内存打交道操作系统1.组成任何计算机系统都包含...

2019-01-15 20:43:47

行缓冲了解

1.回车与换行在电视上大家应该看到过,有人用一种打字机打字,那是计算机未出现前的产品。但它存在一个缺陷,在打完一行换行的时候,需要0.2秒的时间,但是这0.2秒可以打两个字符,如果这0.2秒内有新的字符传入,那么该字符会丢失。于是打字机的研发人员便想了办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做”回车”,告诉打字机把打印头定位在左边界;另一个叫做”换行”,告诉打字机把纸向下移...

2019-01-15 15:48:15

Linux调试器gdb的使用

1.使用条件在源代码生成二进制程序时加上-g。2.使用相关命令1)使用gdb 需要调试的文件名命令开始调试2)使用 ctrl + d或者quit退出3)list/l:显示源代码,每次列10列4)l/list 函数名:显示函数的源代码5)r/run:运行程序,相当于vs中的F56)n/next :单条执行,相当于vs中的F10逐过程7)s/step:进入函数调用,相当于vs中的F1...

2019-01-14 22:10:02

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。