常见的各种锁

常见的各种锁 常见的各种锁 1、悲观锁 悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,在获取数据的时候先加锁,确保数据的安全性。 锁实现:关键字synchronized、Lock接口的实现 使用场景:写操作比较多,先加锁可以保证写操作时数据正确 2、乐观锁 乐观锁认为自己在使用数据的时候不… ...更多

十二月 18, 2022 [C/C++] #lock
vimscript(just record)

vimscript(just record) Table of Contents

目录 1 简介

一个简单的例子:

2 变量 3 表达式 4 条件语句 5 执行一个表达式 6 使用函数

函数

字符串操作: 列表处理: 字典处理: 浮点数计算: 其它计算: 变量: 光标和位置标记位置: 操… ...更多

十二月 02, 2022 [桌面与效率] #Vim
self_signed_certificate

self_signed_certificate 常用后缀名 格式 说明 .crt .cer 证书(Certificate) .key 密钥/私钥(Private Key) .csr 证书认证签名请求(Certificate signing request) *.pem base64编码文… ...更多

十一月 21, 2022 [网络与安全]
wireguard_netmaker

wireguard_netmaker Wireguard 新内核一般都已经支持了wireguard,使用如下命令验证 modprobe wireguard dkms status lsmod | grep wireguard modinfo wireguard

如果kernel低于5.6需要自己安… ...更多

十一月 19, 2022 [网络与安全] #wireguard
wsl_x11_gui

wsl_x11_gui 不能正常生成Xauthority的临时解决方式 ssh -R X11 forwarding本质上就是通过ssh remote tunnel将本地X server转发到远程, 所以即使远程主机的X11 forwarding是关闭的,我们也可以通过ssh -R转发服务。

wi…

...更多

十一月 17, 2022 [桌面与效率]
进程状态

进程状态 进程状态排查工具 ps -ef ps auxf pstree -aps XXX

记录性能事件,等待大约15秒后按 Ctrl+C 退出

perf record -g

查看报告

perf report

ps -T -p <pid> dstat 1 10 strace … ...更多

十一月 10, 2022 [Linux 与系统] #Linux
内存检测工具asan

内存检测工具asan 内存检测工具asan ASAN(Address-Sanitizier)早先是LLVM中的特性,后被加入GCC 4.8,在GCC 4.9后加入对ARM平台的支持。因此GCC 4.8以上版本使用ASAN时不需要安装第三方库,通过在编译时指定编译CFLAGS即可打开开关。 内存检测工… ...更多

十一月 10, 2022 [C/C++] #clang #gcc
xv6/risc-v

xv6/risc-v some elf tool elfutils /usr/bin/eu-addr2line /usr/bin/eu-ar – alternative to ar, to create, manipulate archive files /usr/bin/eu-elfcmp /us… ...更多

十月 13, 2022 [Linux 与系统] #OS #jos
Linux动态链接中的PLT和GOT

Linux动态链接中的PLT和GOT PLT & GOT 首先, 我们要知道, GOT和PLT只是一种重定向的实现方式. 所以为了理解他们的作用, 就要先知道什么是重定向, 以及我们为什么需要重定向. 重定向(relocations), 简单来说就是二进制文件中留下的"坑", 预留给外部变量… ...更多

十月 12, 2022 [C/C++] #gcc
终端字体

终端字体 tty UTF TTY终端无法显示中文字符的原因,是内核无法渲染中文字符,我的理解是:因为中文字符的显示模式、宽度与英文字符不同, 默认输出英文字符的framebuffer(帧缓冲区)无法支持中文的完整显示。如果你使用SSH等其它方式,字符并不是由内核渲染输出,所以正常显示了。 让 lin… ...更多

十月 10, 2022 [桌面与效率] #console
clang-tidy/ninja

clang-tidy/ninja clang-tidy clang-tidy --list-checks # list default checker clang-tidy --list-checks -checks='*' run-clang-tidy.py clang-for… ...更多

十月 10, 2022 [C/C++] #clang
gdb

gdb 参考自: https://www.cnblogs.com/euphie/p/9781482.html http://blog.chinaunix.net/uid-30038461-id-5136170.html https://blog.csdn.net/faxiang1230/articl… ...更多

十月 10, 2022 [C/C++] #gdb
priority_queue lambda

priority_queue lambda 优先级队列priority_queue使用lambda表达式出错问题 以下代码在c++17中报错,c++20中正常 #include <iostream> #include <queue>

int main() {

std:… ...更多

七月 04, 2022 [C/C++] #C++
rust 生命周期标记

rust 生命周期标记 生命周期和所有权 Rust语言中的 'static 生命周期 &'static T是具有 'static 生存期的引用,或者说无限生存期。 T: 'static 是约束,表示 T 的生存期应当不短于 'static。此时有两种情况: T 包含外部引用,那么其中所有引用… ...更多

七月 03, 2022 [Rust] #Rust
cxx-allocator类

cxx-allocator类 allocator new 在灵活性上有一些局限 可以使用allocator类进行更加强大的内存操作 分配器也是标准库的一个话题,我们这一片文章不对分配器的角色进行讨论,仅仅结合标准库的源代码对齐进行简单的剖析以及解释它的一些用法。 双层级配置器,也就是第一级配置器和第… ...更多

七月 01, 2022 [C/C++] #C++
std::function

std::function std::function std::function是一个函数包装模板,可以包装下列这几种可调用元素类型:函数、函数指针、类成员函数指针或任意类型的函数对象(例如定义了operator()操作并拥有函数闭包)。 std::function对象可被拷贝和转移,并且可以使用… ...更多

六月 27, 2022 [C/C++]
限流——漏桶算法和令牌桶算法

限流——漏桶算法和令牌桶算法 限流 在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流 缓存:缓存的目的是提升系统访问速度和增大系统处理能力 降级:当服务流量剧增,影响到核心流程的性能,需要暂时屏蔽掉一些功能,待高峰过去或问题解决后再重新打开,以此释放服务器资源以保证核心任务的正常运行。 限… ...更多

六月 21, 2022 [算法与数学] #server
负载均衡算法

负载均衡算法 负载均衡 负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。 负载均衡器可以处理什么样的请求? 负载均衡器的管理员能主要为下面四种主要类型的请求设置转发规则: HTTP HTTPS TCP UDP 负载均衡器如何… ...更多

六月 21, 2022 [算法与数学] #server