并发编程三大特性——原子性、可见性、有序性

A.原子性 **即一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。**原子性确保对共享资源的操作不会被其他线程干扰,从而避免数据不一致性(如竞态条件) ...

May 19, 2025 · 9 min

双指针

双指针顾名思义,就是同时使用两个指针,在序列、链表结构上指向的是位置,在树、图结构中指向的是节点,通过或同向移动,或相向移动来维护、统计信息。 713. 乘积小于 K 的子数组 ...

May 4, 2025 · 5 min

什么是消息验证码 MAC?

有两个人 A 和 B。 A 通过网络向 B 发送一条消息。B 收到了之后,怎么确认: 1.这条消息没有被中间人篡改过 2.这条消息确实来自于 A,而不是某个 C 伪造出来的 答案就是使用 MAC。A 在发送消息时,计算出该消息的 MAC 值,并将其一起发送给 B。B 收到之后,便可以根据 MAC 确认 1 和 2. ...

May 2, 2025 · 3 min

Authorization Code 授权原理和实现方法

Oauth2.0 定义了几种授权流程,其中最重要、也最基础的是 Authorization Code 授权。先看流程图: 1,用户访问 A 网站 2,A 打开 B 的授权页面 3,用户看到授权界面,输入账号密码进行授权 4,B 验证用户是合法的之后,生成一个 authorization code,然后通过 302 跳转的方式,把这个 code 发送给 A ...

May 2, 2025 · 5 min

VS Code+platformio配置ESP32-S3-N16R8(8MB PSRAM + 16MB FLASH)工程

一、背景 platformio现有的板子库里面没有ESP32-S3-N16R8(8MB PSRAM + 16MB FLASH)的开发板模型,直接强行套用,要么就是解锁不了8MB PSRAM,要么就下载后运行不起来。但是Arduino可以正常解锁。 ...

May 1, 2025 · 1 min

位运算记录

在现代计算机中,所有数据都以二进制形式存储,即 0 和 1 两种状态。计算机对二进制数据进行的运算(如加、减、乘、除)被称为位运算,即对二进制数的每一位进行操作的运算。 为了更好地理解位运算,举个简单的例子:假设我们有如下代码进行两个整数的加法运算: ...

April 14, 2025 · 4 min

前途一片阴暗,好凉快

前途一片阴暗,好凉快,人生一波三折,好便宜,生活千疮百孔,好透气。工作天天加班,好充实。忙的焦头烂额,好暖和。工资少得可怜,好携带。人生一贫如洗,好干净。计划又泡汤了,泡汤很舒服啊,因为太多人对我蹬鼻子上脸,导致我的面部比较扁平,我是被害的,话到嘴边又咽了下去,每天以此获得饱腹感

April 13, 2025 · 1 min

stringstream用法整理

一部分转载自巴哈姆特:https://home.gamer.com.tw/creationDetail.php?sn=4114818 stringstream是一個C++底下的類別,專門拿來讀取字串並且處理,很多時候拿來做字串的切割,或者是int跟string類別之間的轉換。 ...

April 9, 2025 · 2 min

接入Cloudflare的网站发现部分css和js加载不出来的解决方法

问题如题,本博客也有过这个问题 按f12发现这部分交由static.cloudflareinsight.com/beacon.min.js进行加载,现代的浏览器都有严格cors的策略了,咋可能加载的出来…… ...

April 9, 2025 · 1 min

惠普m1216打印机无法安装驱动无法打印

给打印机插到打印的电脑上,开始安装驱动,卡在这里: 在此之前我插到自己的电脑装过驱动试过,卡个2分钟也就装上了, 我也就没管出去吃饭了,结果吃完一小时再回来还是这个鬼窗口,我就觉得事情不对了。 ...

April 9, 2025 · 1 min