- 博客(40)
- 收藏
- 关注
原创 java Springboot 各种@的使用
java Springboot 各种@的使用@GetMapping用于将HTTP get请求映射到特定处理程序的方法注解具体来说,@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。@PostMapping用于将HTTP post请求映射到特定处理程序的方法注解@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, note
2020-09-01 14:02:15
1553
原创 LINUX内核线程与调度
LINUX内核线程与调度内核线程与用户线程栈空间的不同内核线程的栈只位于内核空间中用户进程/线程在用户空间和内核空间都有对应的栈。代码的实现是在用户栈。内核线程的栈空间一般<8k运行上下文相同使用线程入口函数int (*threadfn)(void *data)创建kthread_create(不启动)kthread_run(启动)启动wake_up_process停止kthread_stop-通告并等待线程退出kthread_stop一个已经退出的线程会出现什么结果
2020-07-22 17:36:03
1267
原创 以太网的基础学习
以太网基础学习以太网帧结构Preamble/SFD:每个以太网帧发送时都以八个字节的前导码开始,Preamble是1和0交替的7个字节数据,该部分的作用是通知接收方有数据帧到来,使其与输入的始终保持同步。SFD:是一个字节10101011,最后使用11,来通知接收方下一字段就是目的主机的地址了,实际上前导码都是在物理层加进去的,并不是帧的一部分。DMAC:6个字节,目的节点的MAC地址。SMAC:6个字节,源节点的MAC地址。Type/Length:2字节,根据数值的不同代表2中不同的封装格式
2020-07-15 11:58:11
1093
原创 路由器的互通
路由选择和路由器IP互联网采用面向非链接的互联网解决方案。1.路由器逐跳转发:各个路由器独立的对待每个IP数据报。2.路由器负责为每个IP数据包选择它所认为的最佳路径。路由器** 主要任务**路由器的著有任务就是路由选择多宿主机具有多个物理连接发送IP数据报前,需要决定发送到哪个物理连接更好普通主机具有单个物理连接通过网络与多个路由器相连时,发送IP数据报前需要决定发送给哪个路由器更优路由选路1。路由选择设备中有一张路由表2.查询路由表中可能的目的地址以及怎样到达目的地址。3
2020-07-14 16:52:01
609
原创 C++ STACK与pair的基本用法
STACKStack(栈)是一种后进先出的数据结构使用STL的STACK需要的头文件#include一个头文件<stack>stack是基于deque实现的 相当于 deque双端队列 封闭了一端stack的构造&.1stack< int > first ; // 构造一个存放int类型的空栈,size=0;&.2deque<...
2020-04-14 03:09:31
4050
原创 互斥锁mutex的用法
互斥锁mutex条件变量的使用主要有以下五个函数:/* 初始化一个条件变量 */int pthread_cond_init (pthread_cond_t* cond, pthread_condattr_t *cond_attr); /* 销毁一个条件变量 */int pthread_cond_destroy(pthread_cond_t* cond); /* 令一个消费者等待在条...
2020-04-08 15:58:23
344
原创 python 01
python 01类型python中的变量不需要定义类型。类型转换int()—转整数float()-----转浮点数str()------转字符串type(…)-------获取当中类型isinstance(a,str)-----------a是否是str类型assert 3>4 当此关键字后面条件为假时程序自动崩溃,因此常用来检查错误for i in range()的...
2020-03-16 15:50:53
96
原创 继承和组合
继承和组合继承和组合的概念继承的概念子类继承父类可以拥有父类的属性和方法,或者重新定义,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能组合组合就是将没有关联的事物都组合起来,将其他类当成成员来使用。例子class Computer{ Memory mMem; Disk mdisk; CPU mcpu; MainBoard mm...
2019-09-27 15:34:46
142
原创 static的用法总结
static的用法总结一、修饰内置类型为静态变量将原本为全局变量或者局部变量的数据,变为静态全局变量和静态局部变量,存储在data区。静态变量只初始化一次,未初始化的静态变量会默认初始化为0。静态全局变量只在本文件可见,外部文件无法访问。而静态局部变量只在定义的作用域内可见,但他们的生存周期都是整个程序运行时期。二、static修饰函数用static修饰的函数,无法被两个文件同时使用,例...
2019-09-27 14:28:16
12739
原创 内存区
内存区基本构造堆区栈区全局/静态区文字常量区代码区堆栈的不同1.分配方式不同2.空间大小不同3.分配效率不同4.生产内存碎片不同5.生长方向不同...
2019-09-27 12:25:46
113
原创 树
树二叉树转森林例子:类似:再二叉树,左边的统称为孩子,右边的统称为兄弟,兄弟和兄弟层次相同,A,C,E都是兄弟因此同一级别将其分开。E下面都是左节点都是孩子,所以分在一起而A 为节点的,B为A的孩子,BDH为同级兄弟,因此把他们分在一起。都在A级下一层。...
2019-09-19 19:15:10
80
原创 面试——排序算法总结
面试——排序算法总结快速排序空间复杂度快速排序是一种原地排序,只需要一个很小的栈作为辅助空间,空间复杂度为O(log2n),所以适合在数据集比较大的时候使用。时间复杂度时间复杂度比较复杂,最好的情况是O(n),最差的情况是O(n2),所以平时说的O(nlogn),为其平均时间复杂度。具体操作过程随便取一个值(6)将其为基准进行排序,分别从初始序列“6 1 2 7 9 3 4...
2019-09-10 19:45:04
281
原创 基于RTSP流媒体的视频点播器
基于LINUX的视频点播器总结基本架构的建立分为前置服务器与后置服务器前置服务器主要接收到客户端发送的包,然后确认类型,通过共享内存写入。并且设置当共享内存检测到后置服务器有数据写入,将其发送回客户端后置服务器处理前置服务器发送的包,进行解包以及处理包体,最后再打包写回共享内存发送回前置服务器。以epoll服务器为基本架构绘制结构图...
2019-09-03 22:04:06
387
原创 epoll封装成类
epoll封装成类epoll基本信息epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为它会复用文件描述符集合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件 异步唤醒...
2019-08-20 16:56:58
414
原创 select模型
select 模型select函数#include <sys/select.h>/* According to earlier standards */#include <sys/time.h>#include <sys/types.h>#include <unistd.h>int select(int nfds, fd_set *re...
2019-08-19 16:49:55
263
原创 LINUX线程
LINUX线程线程的概念线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在UnixSystem V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernelthread),而...
2019-08-15 01:10:14
1056
原创 网络编程1
网络编程模型TCP/IP四层模型应用层 TeLent,FTP和e-mail等传输层 TCP/UDP网络层 IP,ICMP和IGMP链路层 设备驱动程序及接口卡通信过程如果两台计算机在不同的网段中,那么数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器链路层之下还有物理层,指的是电信号的传递方式,比如现在以太网通用的网线。链路层有以太网、令...
2019-08-13 07:40:17
110
原创 进程间的通信
进程间的通讯pipe管道管道是一种最基本的IPC机制,由pipe函数创建#include <unistd.h>int pipe(int filedes[2]);管道作用于有血缘关系的进程之间,通过fork来传递管道中filedes[1]指向写端,filedes[0]指向读端,所以管道在用户程序看起来就像一个打开的文件,通过read[filedes[0]],或者write(f...
2019-08-09 00:39:11
85
原创 进程管理2
进程管理2exec,system,wait,waitpid系统调用exec包含头文件<unistd.h>原型int execl(const char *path, const char *arg, …);int execlp(const char *file, const char *arg, …);int execle(const char *path, con...
2019-08-07 07:33:08
151
原创 进程管理1
进程管理11、进程基础(进程组成结构)程序的执行实例被称为进程程序的执行实例被称为进程(process)。本书的每一页几乎都会使用这一术语。某些操作系统用任务表示正被执行的程序。每个linux进程都一定有一个唯一的数字标识符,称为进程ID(process ID)。进程ID总是一非负整数。进程包含PCB(进程控制块)、程序以及程序所操纵的数据结构集,可分为“代码段”、“数据段”和“堆栈段”...
2019-08-06 00:09:55
502
原创 linux 文件IO
Linux文件IOC语言PCBtask_struct结构体/usr/src/linux-headers/include/linux/sched.hfiles_struct结构体文件描述符一个进程默认打开3个文件描述符STDIN_FILENO 0STDOUT_FILENO 1STDERR_FILENO 2open/closeint open(const char *pa...
2019-08-05 02:42:58
167
原创 socket通讯编程
socket通讯编程传输层协议。包括传输控制协议TCP和用户数据报文协议UDP。传输控制协议(TCP)。由于IP 提供非连接型传递服务,因此TCP应为应用程序存取网络创造了条件,使用可靠的面向连接的传输层服务。该协议为建立网际上用户进程之间的对话负责。此外,还确保两个以上进程之间的可靠通信。它所提供的功能如下:1.监听输入对话建立请求。2.请求另一网络站点对话。3.可靠的发送和接收数据...
2019-07-10 22:06:31
168
原创 SQLite3——1
SQLite3——1linux 命令行下的数据库操作启动SQLite数据库sqlite3 mydb.txt创建一个表create table student(id int,name char[20], number int);添加内容Insert into stuednt value(1000,“wqw”,60);查询Select * from student;Select...
2019-07-06 01:05:46
115
原创 QT的信号与槽
QT的信号与槽信号和槽是一种高级接口,应用于对象之间的通信信号和槽是QT自行定义的一种通信机制,它独立于标准的C/C++语言,因此要正确的处理信号和槽,必须借助一个称为 moc (Meta Object Compiler)的QT工具,该工具是一个C++预处理程序,它为高层次的事件处理自动生成所需要的附加代码。在所有从 QObject或其子类(例如Qwidget)派生的类都能够包含信号和...
2019-07-03 18:29:11
462
原创 QT的firstblood
QT的安装和使用欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Mark...
2019-06-30 03:20:34
153
原创 Samba服务器基本配置
Samba服务器基本配置Samba服务的主配置文件smb.conf 文件是Samba服务器的主配置文件,位于 /etc/samba。smb.conf相当于是整个服务器的一个目录,记录者大量规则和共享信息。该文件中配置信息被分成多段,每段以“【段名】”的形式开头所有‘#’或‘;’开头的行为注释行,在配置时可以忽略掉。其中‘#’表示系统注释,用于解析说明;“;”表示可以由用户来修改或设置的部...
2019-06-24 16:19:44
292
原创 Samba服务器工作模型与工作原理基础
Samba服务器工作模型与工作原理工作组模型工作组——指网络上的计算机构成一个逻辑组。在工作组中所有计算机以同等的地位共享网络资源,而不需要特定的服务器,因为每一个计算机既可以做服务器也可以做工作站,每台计算机都有自己的账户和对象。每一个计算机都是一个独立的个体,拥有自己的账户以及密码,其他计算机如果想要使用该计算机的资源必须知道目标计算机正确的账号密码才行。通过交换机做中介优点:每个...
2019-06-24 14:50:42
949
原创 C++ STL的用法(基础)
C++ STLSTL组件Container(容器) 各种基本数据结构容器类是容纳、包含一组元素或元素集合的对象异类容器类与同类容器类顺序容器与关联容器七种基本容器:向量(vector)、双端队列(deque)、列表(list)、集合(set)、多重集合(multiset)、映射(map)和多重映射(multimap)顺序容器——向量(vector)向量属于顺序容器,用于容纳不定长...
2019-06-23 21:52:41
102
原创 LINUX进程
LINUX进程管理基本概念 每个linux进程都一定有一个唯一的数字标识符,称为进程ID(process ID)。进程ID总是一非负整数。Linux系统是一个多进程的系统,进程之间具有并行性、互不干扰的特点。 linux中进程包含PCB(进程控制块)、程序以及程序所操纵的数据结构集,可分为“代码段”、“数据段”和“堆栈段”进程的状态运行状态R(TASK_RUNNING)可中断睡眠状...
2019-06-21 23:09:24
470
原创 C++学习基础1.
C++学习基础引用引用==类似于一个人的别名1,首先引用必须有对应的实体,不能独立存在。int &b=NULL; 错误对引用的对象操作就类似对本体操作。int a=10;int &b=a;此时对b进行操作就相当于对a进行操作。会直接影响到本体。对结构体也有相同作用。一个结构体 nodenode a;node &b=a;在对b中的属性进行操作的时...
2019-06-19 12:56:00
65
原创 2019 5/13 Linux基础指令1
LINUX基础指令1换执行等级: initLinux共有七种执行等级:–run level 0 :关机–run level 3 :纯文本模式–run level 5 :含有图形接口模式–run level 6 :重新启动重启reboot键盘指令:重要的几个热键[Tab],[ctrl]-c[Tab]按键—具有『命令补全』不『档案补齐』的功能[Ctrl]-c按键—让当前的程序...
2019-05-14 12:59:42
214
原创 2019 3/31 键盘的封装还有串口的封装与通信
3/31 键盘的封装还有串口的封装与通信键盘的封装功能:实现自动换行,光标的闪烁,退格,触摸光标移位,并且可以从移动了位置的光标输入和退格。定义键盘按键的结构体typedef struct Event{int xpos;int ypos;int wideth;int height;char *title;int flag;void (*handle)(struct Eve...
2019-04-02 15:45:12
150
原创 2019 / 3 /24 触摸屏键盘的功能实现
3/24触屏键盘的功能实现键盘的显示按钮结构体的建立是采用建立一个结构体,里面包含了该按键的x,y,坐标,长度high,宽度width,以及改按键完成的时间handle,还有按钮的名字title;typedef struct Event{int xpos;int ypos;int wideth;int height;char *title;int flag;void (*...
2019-03-26 15:24:21
525
原创 2019 3 / 20计时器 TIM的使用和软定时器的使用
计时器 TIM的使用和软定时器封装TIM的使用定时器的本质就是一个递减的计数器,根据触发条件在计数器的值达到触发条件的时候,触发事件的发生。定时器一共有8个TIM1----》TIM8配置初始化函数void TIM4_Init(u16 per,u16 psc) 中进行配置。一定要同时配置per和 pse才能生效,具体的而计算公式为以TIM4_Init(4-1,36000-1)为例子:...
2019-03-21 22:10:59
544
原创 2019 3/17日 RTC时钟
RTC时钟什么是RTCRTC 是Real Time Clock 的简称,意为实时时钟。STM32提供了一个秒中断源和一个闹钟中断源,修改计数器的指可以重新设置系统当前的时间和日期。RTC实际上就是 一个定时器而已,掉电之后会丢失所有信息,因此我们需要找一个地方来存储这些信息,于是找到了备份寄存器。掉电之后仍然可以通过纽扣电池供电,所以能时刻保存这些数据。RTC配置相关BKPRTC模...
2019-03-18 23:08:52
220
原创 2019 3/19 外部中断封装与BUTTON封装
2019 3/19 外部中断的封装与BUTTON,Lable的封装1.外部中断的封装。1.void IRQ_Install(IRQ_E no ,irqHandle pHandle)装载函数装载就类似于初始化,整个中断中只有装载函数在main函数中出现,其余都在后台执行。IRQ_EVENT T1;T1.irqNo=no;T1.flag=0;T1.pHandle=pHandle;IR...
2019-03-16 20:20:50
198
原创 2019 3/10 中断与按键控制
2019 3/10 中断与按键控制上午下午中断的了解遇到的问题心得体会上午上午的主要任务是完成按键控制1.首先观察按键控制的相关原理图:找到KEY UP,K1,K2,K3初始化GPIOA,GPIOEKEY UP键的模式要设置为下拉输入GPIO_Mode_IPD而剩下LEFT RIGHT DOWN 要设置为上拉输入GPIO_Mode_IPU之所以这样设置结合原理图如果没有上拉...
2019-03-11 21:02:41
513
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人