自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(688)
  • 收藏
  • 关注

原创 高并发内存池1:内存申请与释放

高并发内存池第一版,实现内存申请和释放

2024-10-28 17:00:12 923 2

原创 漫话linux:死锁与同步

push逻辑:首先锁定互斥锁,确保没有其他线程正在访问队列,然后检查队列是否已经满了,使用while循环而不是if可以防止线程被虚假唤醒,如果队列已满,则等待生产者条件变量(解锁互斥锁,将调用线程置于等待队列中,直到一个线程对生产者条件变量使用signal或broad_cast,当线程被唤醒时,该函数会在重新获取互斥锁之前返回),如果不满,则将in加入队列中,再触发消费者条件变量(队列现在不为空,可以买了),表示有东西已经生产完成,再解锁互斥锁,表示可以调用其他部分。两个线程都是先申请A锁在申请B锁。

2024-10-03 11:22:25 1241 3

原创 漫话linux:基础IO,软硬链接,动静态库管理

1.生成静态库,以达到保密封装的作用,方法:可以先将.h 和.c 打包成 .o,库的原理和上面类似,只是将所有的.o为后缀的文件打包在了一起,形成了一个库,在使用的时候直接使用这个库就可以,指令为ar -rc libname.a[所有待打包.o],将所有.o文件制作成静态库,该指令中,ar是gnu的归档工具(Archive files),rc表示replace和create。1.软链接:是一个独立文件,具有独立的 inode ,也有独立的数据块,它的数据块里面保存的是指向的文件的路径,公用 inode。

2024-09-12 09:00:50 1406 3

原创 acwing112:三种排序方法解决组合排序问题

1.假设海岸是一条无限长的直线,陆地位于海岸的一侧,海洋位于另外一侧。每个小岛都位于海洋一侧的某个点上。雷达装置均位于海岸线上,且雷达的监测范围为 dd,当小岛与某雷达的距离不超过 dd 时,该小岛可以被雷达覆盖。我们使用笛卡尔坐标系,定义海岸线为 xx 轴,海的一侧在 xx 轴上方,陆地一侧在 xx 轴下方。现在给出每个小岛的具体坐标以及雷达的检测范围,请你求出能够使所有小岛都被雷达覆盖所需的最小雷达数目。

2025-03-25 19:21:00 304

原创 汇编小测复习(逃课被抓那些事)

7.可以将一些连续地址看作段,*16得基础地址,偏移地址定位段中内存单元,所以一个段的起始地址为16的倍数,偏移地址16位,寻址16位,所以一个段最大64k,地址为0到FFFFH。5.8086有20位地址总线,输送能力1m,但内部16位输送只有64k的寻址能力,内部两个16位合成一个20k。2.8086寄存器16位,可以存放两个字节或者16位的数据,存储最大值为2的16次方-1,各种都是16位。10.工作过程:CS:IP指向单元内存读指令,进入指令缓冲器,IP=IP+长度,执行。格式:动作 目的地 对象。

2025-03-18 22:37:37 126

原创 qt:MainWindow

但是如果上述代码是出现在一个多窗口的程序中,如果涉及到窗口的频繁跳转切换(窗口的频繁创建销毁),上述内存泄漏就会更严重。但是实际上由于现在的计算机内存比较充裕,上述内存泄漏都还好,但还是要求代码写得更规范一些,所以采用下面这种写法。上述程序如果窗口关闭,对象树释放,此时进程就结束了,自然所有的内存都回收给系统,上述内存泄漏也就不会造成影响。在创建工具栏的同时指定其停靠的位置,指的是程序运行时工具栏默认所在的位置;Qt::BottomDockWidgetArea 停靠在底部。

2025-02-26 09:52:10 848

原创 qt:多元素类,容器类,布局类

qt designer中,可以设置多个布局管理器,但是不会起作用,原因是一个Widget只能有一个布局管理器,多余的是新建一个Widget对象,所以不会有效。QSizePolicy::Preferred: 控件的理想尺寸为固定值,布局时会尽量接近该值。- QSizePolicy::Minimum: 控件的最小尺寸为固定值,布局时不会超过该值。QSizePolicy::Maximum: 控件的最大尺寸为固定值,布局时不会小于该值。QSizePolicy::Ignored:忽略控件的尺寸,不对布局产生影响。

2025-02-24 23:08:18 803

原创 qt:输入控件操作

on_lineEdit_textEdited 的参数是当前输入框的内容,通过 lineEdit->validator() 获取到内置的验证器。在qt designer里面设置刻度可见,初始值100,从20到80,可以循环旋转(注意有参数的槽函数应该怎么连接。在电话输入时,为了格式的合法化,要11位数字,否则无法点击确认按钮(正则表达式问ai就行)首先我们来完成一个界面,姓名,密码(隐藏),电话,性别的输入框,点击确定后进行打印。可以使用checkbox,这个是一个有是否选中状态的按钮,来切换密码模式。

2025-02-21 17:39:14 1035

原创 qt:常见标签操作,倒计时功能,进度条与日历

四种常见的文本:富文本,纯文本,markdown,自动文本的显示现在来演示一下图片标签设置图片拉伸:重写resizeEvent函数在头文件中声明,该函数继承于它的父类然后进行重写就可以实现图片缩放在打开qtdesigner,然后在左侧选中QLable的父亲QFrame,将framesheet设置为box,就有框了,如果想要Label,同样方法拖动即可分布以四个标签来展示以上四个功能在标签中写类似&键盘按键的形式,再利用setBuddy绑定一个伙伴按钮,就可以使用Alt+键盘按键

2025-02-19 20:34:00 969

原创 qt:按钮的常见操作(简单方向键项目)

首先,设置圆形按钮,首先要将setGeometry(x位置,y位置,长,宽)中的长和宽设置为相等,再使用一下模板将border_radius设置为长或宽的一半,就可以得到一个圆形按钮了 那么问题来了,如何在图片上显示字呢?最好的方法是在图片上直接p,如果使用样式表就需要绝对路径,一般不会使用绝对路径 方法up是按钮,而且w的位置也可以是ctrl+w等组合键在使用这钟快捷键方式后,不点击小兔子,点键盘上的wasd,就能控制猫的移动了键盘:默认支持鼠标:setAutoReapeat,s

2025-02-18 19:54:14 269

原创 qt:经典窗口操作与控制

就是3中的资源文件法,qt使用的qrc机制主要解决两个问题,第一个是文件所在路径在用户机器上存在,第二个是文件不会被用户误删或修改,但是会存在一个问题,就是资源文件不能过大。会发现左侧文件栏出现资源文件选项,在路径里面找到对应qrc文件后,在同级目录或者子目录下放置图片,就可以通过资源文件前缀(创建时有显著表示提示创建)+文件名称调用了。3.在 Qt 开发中,可以通过将资源文件添加到项目中来方便地访问和管理这些资源,这些资源文件可以位于 qrc 文件所在目录的同级或其子目录下。1.XML格式的资源文件。

2025-02-17 20:33:54 687

原创 算法思考:位运算

两个性质,第一个是奇数的1的个数是它二分之一的数的1的个数加一,偶数则相同,另一个是一个数1的个数比它&它-1的1的个数多1。1的个数,可以利用&有0就是 0的性质,可以让数每次右移一位与1做&运算,如果最后一位为1则是1,否则是0。2.计算从1到n中所有数二进制中1的个数,列成数组。使用^的性质,一个数^自己为0,一个数^0为该数。位图,统计两个字符串相同英文字母的个数。异或和的应用,两个消失的数字。^:相同为0,相异为1。1.求一个数1的个数。

2025-02-16 20:58:15 190

原创 qt小项目:表白窗口(窗口,信号与槽)

在小的时候,我们经常会看到程序员的表白链接或者表白软件,今天我们来用qt做一个简易版本,并复习一下窗口,信号与槽的操作。

2025-02-16 08:58:34 290

原创 算法思考:非0整数除法

除法,很明显就是循环嘛,那么如何进一步提升效率?就是跳过多余的循环步骤比如15/2,原先是1+1+1+1+1+1+1再余1,现在尽量每次除2的最大倍数,将结果变为4+3+1,将时间由n方减为logn。2.坑点:负数可以到-2的31次方,正数只能到2的31次方-1,防止溢出,设计时就要考虑负数的除法再套用正数情况,而不是相反。这是一道很简单的问题,但是我们可以有更多的思考。3.剩下的就是各种相反数。

2025-02-15 22:10:44 261

原创 qt:对象树,窗口坐标,信号与槽

1.建立关系:通过构造函数或者setParent()指定父对象2.作用:父对象销毁时,会递归删除所有子对象,如窗口关闭时,里面的按钮等都关闭了。

2025-02-15 11:38:44 883

原创 四级词汇第七期

12.conventional 传统的。4.fundamental 基础的。3.consumption 消费。16.largely 很大程度上。18.statistic 统计学。2.adequate 充足的。9.immigrant 移民。11.presence 出席。13.initial 最初的。7.content 满足的。10.confuse 混淆。15.context 背景。1.witness 目击。14.rural 乡村的。5.convey 传送。6.compus 校园。17.folk 人们。

2025-01-26 08:30:00 145

原创 四级词汇第六期

13.appreciate 赏识 意识到。6.remarkable 引人注目的。15.superior 更好的 上级。3.complicated 复杂的。5.sufficient 充足的。9.overlook 俯瞰 忽略。12.accumulate 积累。18.revenue 收入 税收。22.proportion 份额。1.accomplish 完成。8.executive 管理的。16.eliminate 清除。11.urgent 紧急的。19.myth 荒诞的说法。14.grand 宏大的。

2025-01-22 17:41:54 228

原创 四级词汇第五期

4.domestic 本国的 家庭的。8.alternative 可替代的。13.resort 求助 度假胜地。7.minor 未成年人 较小的。2.evebtually 最终。14.derive 源于 获得。5.guarantee 保证。9.recession 萧条。11.radical 根本的。16.yield 产量 屈服。12.recruit 招聘。6.symptom 症状。10.induce 劝导。17.thrive 兴旺。1.reform 改革。20.grant 拨款。3.crash 撞击。

2025-01-21 07:59:07 161

原创 四级词汇第四期

19.demonstrate证明演示。2.formal正式的形式上的。18.distinguish区分。14.regulation管理。26.ingredient要素。8.regardless不顾。11.settle定居平静。20.stimulate刺激。10.register登记。12.perceive理解。16.resident居民。24.reeverse倒退。3.council委员会。7.event大事比赛。9.transfer迁移。15.stable稳定的。

2025-01-20 09:47:08 141

原创 四级词汇第三期

20.recommendation建议。29.circumstance情况。25.manufacture制造。30.capacity容量能力。7.investigate调查。14.workforce劳动力。10.generate产生。15.cultivate培养。24.attribute属性。3.assume假定认为。5.represent代表。12.conflict冲突。17.campaign战役。22.advocate拥护。8.contrast差异。

2025-01-19 08:47:16 233

原创 四级词汇第二期

2.faclity天赋设备场所。23.conclude结束推断。18.effective有用的。27.capture捕获夺得。6.examine检查考察。13.establish创建。22.status职称状况。24.authority权力。28.crucial至关重要的。8.enormous巨大的。10.interact交互。12.adopt采用收养。16.track跟踪小径。11.enhance提高。14.advance前进。15.rely依靠信任。

2025-01-18 09:02:28 248

原创 四级词汇第一期

18.specific 特殊的 具体的 细节。21.deliver 递送 发表 接生 拯救。12.associate 交往 同事合伙人。19.generation 产生 一代人。16.comprehension 理解。3.concern 关切的事,使关心。24.spot 发现认出 少量 地点。9.access 入口 获取 使用。22.indicate 标明 指示。4.decline 拒接 下降。20.launch 发射 投放。2.impact 影响 碰撞。7.reveal 展示 揭露。

2025-01-17 09:04:13 210

原创 小辰哥的算法恢复日记:回溯深搜篇

POW(x,n),计算布尔二叉树的值,求根节点到叶子节点的数字的和,二叉树剪枝,验证二叉搜索树,二叉搜索时第k小的元素,二叉树的所有路径(注意tostring,且出现重复项时将其作为形参起到刷新的效果),全排列,子集,子集异或和总和,全排列2(树层去重,有过一回就去重),括号生成,组合,目标和,组合总和,字母大小写全排列,优美的排列,N皇后,有效的数独,解数独,单词搜索,黄金矿工,不同路径3,组合总和3(更新循环中的i),组合总和2,分割回文串,子集2。

2024-11-18 16:16:41 162

原创 小辰哥的算法恢复日记(dp篇)

d1:爬楼梯,三步,斐波那契数列,买卖股票1,不同路径,下降路径最小和,跳跃游戏,不同的二叉搜索树,地下城游戏(看了题解),打家劫舍,按摩师,打家劫舍2,删除并获得点数(看了自己的总结)d2:粉刷房子,买卖股票含冷冻期,买卖股票含手续费,买卖股票3,买卖股票4,最大子数组和,环形子数组最大和,乘积最大子数组,乘积为正数的子数组,等差数列划分,最长湍流子数组。

2024-11-07 16:18:50 179 2

原创 高并发内存池性能测试

可以发现,两线程安全创建且内存正常申请,没有出现内存泄漏问题,打印不同证明二者的同步关系。比较malloc,free,new delete和我们的申请接口的效率。打印测试(线程同步测试与安全测试)测试成功,接下来会做进一步优化。malloc和free组:3。new和delete组:3。

2024-10-31 22:41:24 212 2

原创 高并发内存池测试问题集合1:内存申请的冲突与误用

页缓存没有问题,也就是申请没有问题,看看释放的问题,我们会发现size=0,所以无法进入大内存释放逻辑,所以应该赋值一下span->objsize。原因找到了,Maxbyte是32页,就要进入堆分配逻辑,但是Npages-1是128页,导致要进入堆的内存大小远远小于进入堆分配逻辑的要求大小。仍然不行,因为修改这一项会影响中心缓存的逻辑,如果它要申请70页的内存,直接给堆了,不合理,所以只能改回来。可以看到线程只有一个,由于创建的线程首先分配了1的内存 ,大内存虽然申请了下来,却无法释放。

2024-10-31 09:49:53 380 2

原创 c栈小白的java速成:从入门到完全入门

java入门与备考

2024-10-23 16:43:03 632 2

原创 高并发内存池:线程缓存测试

【代码】高并发内存池:线程缓存测试。

2024-10-23 15:07:58 141 3

原创 漫话linux:Socket接口

在服务器端,INADDR_ANY(0.0.0.0)可以让服务器监听所有可用的网络接口,而不必指定具体的IP地址,这种方式提高了代码的可移植性。2.type:套接字类型,如SOCK_STREAM(字节流,TCP),SOCK_DGRAM(数据报,UDP)在服务器端,必须绑定一个IP地址和端口号,以便客户端可以与服务器建立通信,bind()函数用于将套接字与IP和端口号绑定。1.服务器初始化:调用socket()创建套接字,调用bind()绑定地址和端口,调用listen()进入监听状态。

2024-10-14 15:54:56 885 4

原创 漫话linux:sockaddr

通过sockaddr结构体,Socket API实现了网络通信和本地通信的统一接口,它的设计理论类似于多态,即通过一个通用的接口来处理多种类型的地址格式。

2024-10-14 12:06:20 809 2

原创 漫话linux:网络基础2与Socket编程基础知识

IP与mac:IP地址是数据传输的终极目标,而mac是数据传输的小目标,若干个mac组成了IP,IP地址在传输地址中是不变的,mac地址出局域网后源和目的都要被丢弃,每经过一个设备都要变化,经由路由器封装。TCP:传输控制协议,面向连接的,可靠的,基于字节流的传输层通信协议,可以解决数据传输中丢包乱序的方法,但是维护复杂,在银行等严谨场景下使用。IP及上层是一样的,IP层使用路由器使得IP协议屏蔽了底层网络的差异,实现了全球主机的IP协议相同,体现了网络层状结构的优越性。

2024-10-14 09:27:22 697 2

原创 漫话linux:网络基础

1.物理层:负责光电信号的传递方式,如网线,wifi等,注意集线器Hub工作在物理层,调制解调器(猫,光猫)也在物理层,其工作目的就是实现模拟信号与数字信号的转换,wifi,就是先把光纤接入猫,然后猫拉一个先连接路由器,路由器帮我们构建一个局域网然后就可以连接wifi了,我们把消息传给路由器,路由器经过物理设备猫,然后将模拟信号转换为数字信号传给网络把数据发送出去。每台主机在局域网上,都有一个自己的mac标识(独一无二),在网卡上,当收到信息后会进行报头与mac地址进行对比,不是丢弃,是就向上交付。

2024-10-14 07:58:28 834 2

原创 数据库原理背题篇:插入与视图

将学生的年龄与名字搞成一个学会分组视图:CREATE VIEW JK(Sname,Syear)AS SELECT Sname year(getdate())-year(Sbirthdate) Sno FROM student GROUP BY Sno。将学生的年龄与名字搞成一个视图:CREATE VIEW JK(Sname,Syear)AS SELECT Sname year(getdate())-year(Sbirthdate) FROM student。删除视图JK:DROP VIEW JK。

2024-10-13 10:16:01 329 2

原创 数据库原理背题篇:查询(衡水流计算机启动)

集合方法查询计科学生与年龄不大于19岁的学生的差集:SELECT *FROM student WHERE Smajor='计科' EXCEPT SELECT *FROM student WHERE year(getyear())-year(Sbirthdate)<=19。查询没有选修80001课程的学生姓名:SELECT Sname FROM student WHERE NOT EXISTS (SELECT * FROM SC WHERE Sno=student.Sno AND Cno='80001')

2024-10-12 20:51:34 817 2

原创 漫话linux:教你如何用多线程操作实现cp模型(饿汉模式)(mini项目)

还有就是我们要实现的cp模型,就是模拟消费者和生产者的关系:消费者与消费者的关系是互斥的(两个人不能同时扫码),生产者与生产者的关系是互斥的(一家厂房不能有两个企业),消费者和生产者在建立上是互斥的,在行为上是同步的(可以同时卖和买,但是消费者不能去人家生产者的厂子里吃),这就是我们用锁的规划。首先是挑选单例模式:饿汉模式与懒汉模式,这里我选择不太麻烦的饿汉模式,也就是正常写,少用new来简化代码,要啥写啥,那么饿汉模式的问题是啥呢?接下来是head2.hpp中的Task类,简单写了一个。

2024-10-08 21:07:35 401 2

原创 数据库原理1:跳过中间摆烂步骤直接进行一个叫做速成的运动

x的操作:第一个表的三行分别与第二个表的三行分别组合即可。相同属性的行做笛卡尔积(可能是多对多),即可。一个斜着的抖音符合底下写查询的条件。

2024-10-07 17:29:35 227 2

原创 华农专业课拯救计划:csf202303

聊聊心路历程:这道题首先看见一堆公式就头大了,但是看到题干就想当一个贪心的男人,首先选择贪心策略(也没啥选的):把资源给天数的最多的,再选择map作为存储器,也可以用vector<pair>加迭代器排序,但是我想用map因为懒得写迭代器排序,首先这是一个降序排序,原因是根据贪心策略要开始从天数多的开始,在有资源且最低天数大于k的时候进行,首先看一看能不能给天数多的降一个档,能就更新一下各种变量,头删一下,不能降档就算一下能减几天,如果一开始就满足要求,就打印最多的天数。第三题(我不会,我不会......)

2024-10-06 10:59:38 218 2

原创 漫话linux:单例模式,自旋锁与读写锁

2.智能指针:unique_ptr的作用范围限定在当前代码块内,不涉及线程安全问题,shared_ptr的特点是多个对象可能共享同一个引用计数变量,存在线程安全问题,所以标准库在实现shared_ptr时,采用了基于原子操作(如CAS)的方式来保证引用计数的操作既高效又原子,从而确保线程安全。通常而言,在读的过程中,往往伴随着查找的操作,中间耗时很长。1.悲观锁:在每次取数据时,总是担心数据会被其他线程修改,所以会在取数据前先加锁(读锁,写锁,行锁等),当其他线程想要访问数据时,被阻塞挂起。

2024-10-05 10:24:06 842 2

原创 漫话linux:信号量

1.信号量,就是对锁的原子性操作P(--)V(++)的一个计数器,本质是描述资源数目,把资源是否就绪放在了临界区之外,申请信号量的时候其实已经在做判断了,P--访问资源--V。3.意义:多生产多消费模型不仅仅局限于将任务或数据放入交易场所,而是包含了任务生产前和消费后的处理过程,这两个阶段往往是最耗时的。3.value:信号量的初始值,即计数器的初始值。返回值:成功返回0,信号量的值-1,失败返回-1,信号量的值不变。返回值:成功返回0,信号量的值+1,失败返回-1,信号量的值不变。4.等待信号量(P)

2024-10-03 16:04:04 331 2

原创 漫话linux:线程锁

一个函数在重入的情况下,运行结果不会 出现任何不同或者任何问题,则该函数被称为可重入函数,否则,是不可重入函数,可重入的一般也是线程安全的。临界区中,线程可以切换,在线程被切出去的时候,是持有锁被切走的。我不在期间,照样没有人能进入临界区访问临界资源,对于其他线程来讲,一个线程要么么有锁,要么释放锁,当前线程访问临界区的过程,对于其他线程是原子的。交换的本质:把内存中的数据(共享),交换到 CPU 的寄存器中,其实是换到 CPU 此时执行的线程的硬件上下文中,数字 1 (锁)只有一个,随着上下文走了。

2024-10-02 03:43:26 835 2

空空如也

空空如也

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

TA关注的人

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