自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《c++并发编程》中无锁栈的实现为什么要用双引用计数器

c++并发编程》中,实现无锁栈用了引用计数技术。原因是,pop方法要删除栈顶中的节点,然而,由于1.读取栈顶指针->2.根据栈顶指针访问栈顶节点、获取栈顶节点所保存的数据以及下一个节点指针next_node->3.更新栈顶指针为next_node->4.删除栈顶节点这4个 步骤不能做到原子,所以可能出现下面情况,线程A执行完步骤1后,在执行步骤2之前,线程B一口气执行完步骤1-4,把节点删除了,然后线程A执行步骤2,就是一个空悬指针解引用的错误,因为线程A并不知道他要访问的节点,已经被线程B删除了。

2024-04-13 10:31:27 657 1

原创 https的过程以及为什么安全

他首先从CA处获得公钥,然后用公钥解密数字签名。然后用与CA同样的摘要算法对证书其他部分做摘要。如果一样,就可以证明证书确实是由CA颁发的。因为如果一个数字签名不是由CA的私钥加密的,CA的公钥解密出来的摘要就和客户自己对证书其他部门的摘要不同。然而,其他人几乎不可能有CA的私钥,所以他就无法冒充CA颁发证书。但这里的前提是,客户手上的CA的公钥,是真真正正的CA的公钥,而不是冒充的CA的公钥。要做到这点,只需要操作系统出厂时,由可信的操作系统厂商把真正的CA公钥提前注入到系统中即可。

2024-03-12 11:15:17 847

原创 使用国内源,加速docker镜像的下载

(:)进入命令行模式。Docker中国区官方镜像。按esc键退出插入模式。

2024-03-06 20:22:44 634

原创 unbuntu一条命令安装docker

【代码】unbuntu一条命令安装docker。

2024-03-06 20:17:10 395

原创 pthread_cancel

延迟取消不会使得线程立即取消,只是给线程发送一个信号。线程会在取消点检查是否有信号,有信号才取消。也就是延迟到取消点取消。取消点有 IO(printf也是IO),pthread_mutex_lock(),phtread_join(),phtread_testcancel()函数等。目前,我没有 找到线程取消的回调函数写法。也就是线程被取消后,可能来不及释放它的资源。函数可以取消一个线程的执行。有两种取消方式:立即取消和延迟取消。

2024-02-07 11:41:18 393

原创 纯虚析构函数需要实现

纯虚函数不需要实现也可以编译通过,但是纯虚析构函数例外。即使把析构函数声明为纯虚,也需要在某一个.cpp文件中给一个定义。

2024-02-06 17:06:55 373

原创 多进程共享的pthread_mutex_t

不用被设置为PTHREAD_PROCESS_SHARED的attr初始化mutex,mutex也能保证互斥:实验表明,如果进程不调用sleep(),省略与不省略步骤4-5的结果是一样的,没有任何两个进程同时进入临界区。不设置PTHREAD_PROCESS_SHARED可能还有其他不预期的事发生,所以还是设置PTHREAD_PROCESS_SHARED好。pthread_mutex_init有个规定,那就是它init的那片内存为全0。它就是mutex初始化时的一个指导,这个指导在哪个位置并不重要。

2024-01-21 17:43:35 465 1

原创 c++ 要求用户输入整数时的风险

不管用户输入的是什么,首先全都接受了,然后再转换为整数。这里使用stoi而不是atoi,是因为atoi在无法把字符串转化为数字时返回0。无法区分是数字就是0,还是无法转换。stoi在无法转化时是抛出异常且不返回。第三行使用getline,还是cin>>a_s。这样这些错误内容可能会使得后面的输入混乱。因为这些错误的内容可能会留在缓冲区。或者用不正确的值覆盖掉a的默认值。因为用户的输入可能无法转化为整数。或者除了整数外输入了额外的内容。为了保证不受用户错误输入的影响。要求用户输入整数时,如果直接这样。

2023-10-28 21:27:31 201

原创 c++和java实现策略模式的差异

c++的对象有两种实例化方式,一种是局部变量中直接实例化。一种是new出来的。java的对象构建,没有第一种方式,java的对象都是new 出来的。

2023-10-27 17:30:15 327

原创 读磁盘概述

一个磁盘有很多个盘面,上面是其中一个盘面,每个盘面对应一个磁头。磁盘的最小单元是扇区,通过CHS可以定位到一个确定的扇区,每个扇区一般是512个字节。

2023-08-02 20:19:51 292

原创 30天自制操作系统 day2 32位处理器的几个寄存器 换种方式制作磁盘镜像 makefile

用的是它自己写的工具,叫edimg。使用方式如下读取fdimg0at.tek,在读取ipl.bin,从ipl.bin的开头读512个字节到fdimg0at.tek中,并另存为helloos.img。ipl.bin就是编译出来的二进制代码。可以用作者提供的启动程序,也可以用day1自己写的。作者提供的程序多了一些内容。是一些参数。

2023-07-22 20:16:55 130

原创 30天自制操作系统 day 1 写一个可以在没有操作系统的计算机上输出字符串的程序,并在计算机上运行

工具:qemu 模拟器。

2023-07-22 18:42:40 91

原创 ubuntu装vmware tool

【代码】ubuntu装vmware tool。

2023-07-17 18:16:19 38

原创 QTQSS设置背景只能被设置一次

但是运行时,一旦被设置了一次border-image,后面再设置border-image的时候已经没有效果了。当控件的属性为off的时候,背景为一张图片,属性为on的时候为另一张图片。

2023-04-10 22:07:31 74 1

原创 QT样式表详解

了解QT样式表,看这一篇就够了。

2023-04-10 17:30:45 2782

原创 QT 支持多行粘贴的表格

从excel表格 中复制,然后选中表格单元格。ctrl+v粘贴。当表格行数不足的时候,会自动补充行。需要继承QTableView实现这个功能。

2023-04-07 00:02:15 317

原创 QT设置图标

把.ico文件放到工程目录中,于.pro文件同级,然后在.pro文件中加上。

2023-04-06 23:47:35 462

原创 linux 进程信号编程 ctrl+C杀死父子进程

在终端中按下ctrl+C,会向当前前台进程以及其子进程发送一个SIGINT信号。

2023-04-03 23:00:44 561

原创 c++操作系统宏定义

_unix _unix_Linux _linux_linux_Windows32or64_WIN32_WIN64APPLE

2023-04-02 22:11:36 71

原创 c++函数重载二义性

指用于定义的类形转换为其他类型。

2023-03-28 21:33:01 201

原创 c++函数引用参数可能创建临时变量

c++引用参数也可能创建临时变量,这种情况发生在,实参类型与形参类型不同,但实参可以转化为形参类型,且形参类型是const的情况。另外,如果形参类型不是const,而实参类型与形参不匹配,那么编译是通不过的。

2023-03-28 16:03:37 140

原创 fatal error: GL/gl.h: No such file or directory

【代码】fatal error: GL/gl.h: No such file or directory。

2023-03-28 10:12:39 385

原创 ubuntu papi安装

【代码】ubuntu papi安装。

2023-03-28 10:02:37 112

原创 ubuntu 安装qt

自己选择想要安装的版本。

2023-03-28 09:56:43 90

原创 c++子类构造函数与赋值号重载说明

子类构造时一定会调用父类的构造函数,如果用户没有说明调用父类的哪一个构造函数,则调用父类的无参构造函数。如果父类没有无参构造函数,则编译错误。

2023-03-22 20:04:18 133

原创 cin特性

这个会忽略空格和回车以及制表符。>>不会丢掉,也不会消费它们。

2023-03-20 22:17:03 52

原创 QT学习记录()QToolBar的addWidget

QtoolBar是可以插入用ui设计的组件的。最终实现的效果如下。

2023-03-18 11:40:21 1022

原创 QT学习记录(8) resouces资源管理

QT resources资源管理

2023-02-27 11:31:20 227

原创 QT学习记录(六)类对象属性

类对象属性Property classinfo

2023-02-19 15:27:18 688

原创 QT学习记录散件

本文介绍我在学习QT的时候,想要记录的一些东西,但这些东西比较散,单独发一篇觉得内容可能太少了。

2023-02-19 10:55:20 381

原创 QT学习记录(五)布局

本文对QT中的布局做介绍。持续更新

2023-02-19 10:52:24 50

原创 Qt学习记录(四)一些属性对象

本文记录一些我看到的属性对象。持续更新

2023-02-19 10:47:11 47

原创 QT学习记录(三)通过ui和代码的方式往窗口添加组件

通过ui和代码的方式往窗口添加组件

2023-02-19 10:44:01 1497

原创 linux xargs 删除名字中包含某字符串的文件

介绍xargs的用法,介绍如何删除名字中包含某字符串的文件

2023-02-19 00:24:26 787

原创 linux将perf的输出重定向到文件的方法

本文介绍如何把perf的命令重定向到文件中

2023-02-18 23:40:29 382

原创 gcc 参数 -D

解释gcc中的-D编译选项

2023-02-18 15:45:17 261

原创 ubuntu 20perf

ubuntu 20安装 perf

2023-02-17 18:53:35 47

原创 ubuntu 20隔离cpu,让某些线程独享cpu

本文介绍如何在ubuntu20 上隔离cpu,也就是让操作系统在用户没有明确指出将某线程运行在隔离cpu上的情况下,不把线程运行到隔离的cpu中。通过 这种方法,可以让某些线程独享cpu。

2023-02-16 15:00:06 761

原创 把ubuntu20装在移动固态硬盘

本文一步一步地展示安装过程。

2023-02-14 21:20:58 832

原创 ucore的字符输出

本文介绍ucore是如何向屏幕输出字符的

2023-02-10 17:56:35 785

空空如也

空空如也

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

TA关注的人

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