- 博客(97)
- 收藏
- 关注
原创 c++:回顾(一)
class A{A(int a){//有参构造class Stuprivate:int age;A a;public:// 初始化列表// 初始化列表的调用时机:在构造函数调用之前// 如果要全部使用初始化列表来完成对类中属性的初始化,需按照顺序cout << "Stu的有参构造" << endl;cout<<"学号:"<<this->id<<"姓名:"<<this->name<<"年龄:"<<this->age<<endl;
2024-06-09 20:28:18 365
原创 IO多路复用回顾
1.进程中如果同时需要处理多路输入输出流,且在使用单进程单线程的情况下,就可以使用IO多路复用2.由于不需要创建新的进程和线程,减少系统的资源开销,减少上下文切换的次数。
2024-05-19 14:47:39 276
原创 进程间的IPC通信机制
进程与进程间的用户空间相互独立,内核空间共享。1.传统的进程间通信机制a.无名管道 pipeb.有名管道 fifoc.信号 signal2.system V中的IPC对象a.消息队列 message queueb.共享内存 shared memoryc.信号灯集 semaphoare3.可用于跨主机传输的通信机制a.套接字 socket。
2024-05-13 18:37:22 612
原创 IO:线程的同步互斥
将不访问共享资源的线程直接休眠,并设置一个唤醒条件,当线程需要访问的时候,其他线程通过制定的条件变量唤醒该线程。线程之间如果要进行通信,需要引入同步互斥机制,避免产生竞态,保证在同一时刻,只有一个线程在处理临界资源。当信号量的值=0时,申请失败,该申请操作会阻塞,线程休眠,等待信号量>0。3.如果申请上锁失败,说明互斥锁被别的线程占用,该线程进入休眠,等待互斥锁解开。2.互斥锁又被称之为二值信号量,只允许一个线程进入临界区,即信号量的初始值为1。2.申请上锁,进入临界区访问临界资源,退出临界区,解开锁。
2024-05-12 15:50:56 375
原创 线程知识点
线程:是一个进程并发执行多种任务的机制。串行:多个任务有序执行,一个任务执行完毕后,再去执行下一个任务并发:多个任务在单个CPU上运行,同一个时间片上只能运行一个任务,cpu不停在各个任务上切换并行:多任务在多个cpu上运行,同一个时间片上可以执行多个任务其中上下文:运行一个进程所需要的所有资源上下文切换:切换进程时,cpu访问的资源需要替换原先的资源,进程的上下文切换是个耗时操作,所以引入线程。因为线程属于同一进程下,共享其附属进程的所有资源。
2024-05-11 21:02:51 433
原创 c语言关键字
1.char:字符型变量,大小为1字节2.short:短整型,大小为2字节3.int:整形,大小为4字节4.long:长整型,大小为8字节5.float:单浮点型,大小为4字节6.double:双浮点型,大小为8字节7.unsigned:无符号类型,在定义char、short、int、long数据时可以用unsigned修饰。8.void:空类型关键字,函数无返回值或无参数。
2024-05-10 20:16:33 171
原创 FreeRTOS:day4
信号量:分别为二进制信号量和计数型信号量。互斥量:用于保护共享资源。缺点:FreeRTOS互斥量中没有实现谁上锁就由谁解锁。递归锁:在递归锁中哪个任务上锁就必须由哪个任务解锁。递归锁可以用于解决死锁问题。递归锁可以多次获取。事件组:事件组是一种同步机制,用于任务之间的通信和同步。它允许任务等待多个事件的状态,并且可以在任何事件设置唤醒等待任务。任务通知:无须创建,直接可以使用,通过任务控制块(TCB)来实现。
2024-04-20 11:48:23 153
原创 FreeRTOS:day3
任务的创建方式分为动态创建(xTaskCreate)和静态创建(xTaskCreateStatic)。区别:1.动态创建不需要自己提供栈,只需要制定栈的大小即可,静态创建任务需要自己提供栈的大小以及栈的空间(数组)。2.动态创建任务适用于随时需要创建任务和随时需要删除任务的场景,静态创建任务适用于任务数量确定的场景。3.动态创建任务需要消耗的资源会比较多,因为实在程序运行的时候创建,静态创建任务消耗的资源会比较少,因为它已经提前创建好了。4.动态创建任务会更加灵活。
2024-04-18 19:18:27 271
原创 FreeRTOS:day2
DMA是提供在外设和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速的移动,节省了CPU的资源,用来做其他操作。DMA+空闲中断用来接收长度不确定的数据空闲中断:在发送一串字符串时,两个字符之间的间隔非常短,所以在两个字符之间不叫空闲,当总线上在一个字节的时间内没有再接收到数据时,就会启动空闲中断。当发送完一次数据后,过一个发送字节的时间内没有收到数据,启动空闲中断,处理接收到的一包数据。DMA接收函数UART_HandleTypeDef *huart:接收串口。
2024-04-17 19:28:02 696
原创 FreeRTOS:day1
在使用Keil uVision5下载和编译代码时,注意工程设置、正确导入源代码、配置依赖项、检查编译器设置、确认调试配置、连接目标设备、下载代码前检查设备状态、及时解决错误。2.总结STM32Cubemx的使用方法和需要注意的事项。1.总结keil5下载代码和编译代码需要注意的事项。5.配置输入/输出模式、上下拉等;1.选择正确的MCU系列和型号;2.配置引脚、时钟和外设;6.生成代码并导入IDE;7.生成代码并导入IDE。1.选择对应MCU型号;3.选择需要配置的引脚;3.生成初始化代码;
2024-04-16 17:25:25 236
原创 QT:信号与槽
如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面。“,并给出两个按钮Yes|No,用户点击Yes后,关闭登录界面,用户点击No后,关闭对话框,继续执行登录功能。完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面。
2024-04-09 20:16:04 435
原创 QT:QMainWindow、ui界面、资源文件的添加、信号和槽
delete ui;qDebug()<<"登录成功";else{qDebug()<<"登录失败";
2024-04-08 20:10:29 340
原创 c++作业
2.写一个程序,程序包含两个类,类中实现一个成员函数,MyGetChar(),类A中每调用一次,按顺序得到一个数字字符,比如第一次调用得到'℃',第二次得到1',以此类推,类B没调用一次得到一个小写字母字符,比如第一次调用得到'a',第二次得到′b,以此类推,程序通过交替调用类A和类 B的函数,实现运行结果输出一串字符串“Oa1b2c3d4e5f6g7h8i9j0k112m3n4o5p6q7r8s9tuvwxyz”1.实现一个类,类中实现一个set 函数,设置一个成员a的值。
2024-04-06 21:21:25 353
原创 bit位清零、置1
单bit操作例如:0XFF bit5 清零先将1左移5位,即1<<5, 0000 0001 -> 0010 0000再将0010 0000取反 得 1101 1111最后将1111 1111 & 1101 1111,得1101 1111。
2024-03-30 14:43:43 283
原创 c++:引用
数据类型 &引用名 = 目标;引用必须初始化取变量的内存地址按位与&&逻辑与&表示定义引用如何区分何时是定义引用何时是取地址?如果&前面有数据类型,说明是定义引用如果&前面没有数据类型,说明是取变量地址。
2024-03-26 21:51:54 1011
原创 c++初步
c++中将字符串封装乘string类,后续可以用string定义字符串变量。如果导入了命名空间中和全局变量冲突的标识符时,后续访问该标识符会报错。访问全局变量: ::标识符名;(全局变量,默认在程序的匿名空间中)=,==,>,>=····运算符直接判断字符串间的关系。cout控制格式输出,只能输出十六进制、八进制和十进制。访问命名空间中的标识符: 命名空间名::标识符名。命名空间只能定义全局处/其他命名空间中。s1.empty:对字符串判空。s1.clear:清空字符串。
2024-03-25 23:25:23 453
原创 网络编程:IO多路复用
1.在有操作系统时,想让多任务并发执行,可以使用多进程或多线程完成多任务并发执行2.在没有操作系统的情况下,就不能使用多进程或多线程了,但是还仍然要让多任务并发执行,此时我们引入了IO多路复用技术3.原理:将多个阻塞任务的文件描述符,统一放到一个检测容器中,然后用一个阻塞函数进行管理,如果检测容器中有一个或多个文件描述符对应的事件发生,就会解除阻塞,进而去执行相应的函数。
2024-03-24 12:55:06 207 1
原创 模拟面试题
子进程退出,父进程不退出,且父进程不回收子进程的资源。此时子进程会变成僵尸进程。僵尸进程本身就死掉的进程,无法再被kill僵尸进程是有危害的:占用进程号,占用进程调度块,占用cpu资源等等,,,,,僵尸进程必须回收!!!退出僵尸进程的父进程,僵尸进程的资源将由内核自动回收。wait/waitpid函数回收:阻塞形式会导致父进程无法正常执行自己的任务,非阻塞形式可能会收不到僵尸进程。将wait/waitpid函数结合信号的方式回收:当子进程退出后,发送一个信号给父进程,通知父进程收尸。
2024-03-21 22:04:27 812
原创 网络编程:数据库
1> 创建一个工人信息库,包含工号(主键)、姓名、年龄、薪资。2> 添加三条工人信息(可以完整信息,也可以非完整信息)3> 修改某一个工人的薪资(确定的一个)4> 展示出工资在1000到2000之间的所有工人信息5> 删除掉指定姓名工人的信息6> 工厂倒闭,删除整个工人信息库2.insert into work values(1,"小明",6,1000);insert into work values(2,"小红",7,2000);
2024-03-20 19:32:33 1079 1
原创 网络编程:包头分析
0X0003 接收发往本机的MAC所有类型:ip,arp,rarp数据帧,接收从本机发出去的数据帧, 混杂模式打开的情况下,会接收到非发往本地的MAC数据帧。Ack:应答号,用于应答非应答包(握手包,挥手包,数据包)。DF:Don't Fragment,“不分片”位,如果将这一比特置1 ,IP层将不对数据报进行分片,即为最后一片。MF:More Fragment,“更多的片”,除了最后一片外,其他每个组成数据报的片都要把该比特置1。ACK:应答包,用于应答非应答包。
2024-03-20 16:36:54 764
原创 模拟面试
三次握手1.客户端像向服务器端发送连接请求2.服务器应答连接请求3.客户端与服务器简历连接四次挥手:客户端或服务器端发起断开请求,这里假设客户端发送断开请求1.客户端向服务器发送断开请求2.服务器应答断开请求3.服务器请求关闭连接4.客户端发送确认应答。
2024-03-19 19:48:54 1024
原创 网络编程:多点通信+域套接字
getsockopt和setsockopt功能:获取或设置套接字相关层中某个属性的值参数1:要设置或者获取的套接字文件描述符参数2:要操作的层SOL_SOCKET:表示应用层IPPROTO_TCP:表示传输层的tcpIPPROTO_UDP:表示传输层的udpIPPROTO_IP:表示网络层参数3:某层中要操作的属性参数4:要给套接字属性设置的值,大部分是整型,设置该属性用1,禁用该属于用0参数5:参数4的大小返回值:成功返回0,失败返回-1并置位错误码。
2024-03-18 23:37:06 813
原创 网络编程面试题
1.为了区分同一主机上的多个进程,使用端口号来进行处理2.端口号是以一个2字节的无符号整数,取值范围[0,65535]3.端口号分类:指定端口号:常用的为TCP 21:FTP文件传输服务TCP 110:POP3邮局协议版本TCP 80:HTTP超文本传输协议UDP 53:DNS域名解析服务UDP 69:TFTP文件传输服务用户可用端口号:1024-49151临时端口号(自动分配端口号):49152-65535。
2024-03-15 20:49:26 1007
原创 TCP机械臂控制
0xff 0x02 x y 0xff 0xff:起始结束协议,固定的;0x02:控制机械手臂协议,固定的;x:指定要操作的机械臂 0x00 红色摆臂 0x01 蓝色摆臂 y:指定角度。通过w(红色臂角度增大)s(红色臂角度减小)d(蓝色臂角度增大)a(蓝色臂角度减小)按键控制机械臂。查看Windows的IP:按住Windows+r 按键,输入cmd , 输入ipconfig。1)基于TCP服务器的机械臂,端口号是8888, ip是Windows的ip;注意:关闭计算机的杀毒软件,电脑管家,防火墙。
2024-03-15 19:59:46 374
原创 TCP并发模型
对于之前的TCP服务器而言,一个服务器只能处理一个客户端你的操作,效率低,当客户端推出后,服务器也就结束了。为了实现一个服务器可以应对多个客户端,我们先引入循环模型。
2024-03-15 19:57:39 274
原创 网络编程:TCP和UDP
1.网络通信通过套接字进行数据传输2.socket是一个函数,为通信创建一个端点,并返回该端点的文件描述符3.套接字本身是一个文件描述符,对应的是一个特殊的文件,该文件描述符维护了两个缓冲区,分别是发送缓冲区和接收缓冲区4.套接字可以实现全双工的通信功能:创建用于通信的一个端点,并返回对应的文件描述符,文件描述符按最小未使用原则分配 参数1:规定通信域AF_UNIX, AF_LOCAL 同一主机之间多进程通信 具体内容可查看 man 7 unix。
2024-03-14 20:56:32 731
原创 网络编程:网络编程基础
TCP/IP协议已分成了两个不同的协议:用来检测网络传输中差错的传输控制协议TCP专门负责对不同网络进行2互联的互联网协议IP。
2024-03-13 21:13:10 1142
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人