- 博客(19)
- 收藏
- 关注
原创 分布式事务
一支白军被围困在一个山谷中,山谷的左右两侧是蓝军。困在山谷中的白军人数多余山谷两侧的任意一支蓝军,而少于两支蓝军的之和。若一支蓝军对白军单独发起进攻,则必败无疑;但若两支蓝军同时发起进攻,则可取胜。两只蓝军的总指挥位于山谷左侧,他希望两支蓝军同时发起进攻,这样就要把命令传到山谷右侧的蓝军,以告知发起进攻的具体时间。假设他们只能派遣士兵穿越白军所在的山谷(唯一的通信信道)来传递消息,那么在穿越山谷时,士兵有可能被俘虏。
2024-07-05 15:15:25
586
原创 JDK新特性之协程
而协程是真正的用户线程,如上图所示很多的协程可以映射很少的几个内核线程,并且协程的创建、销毁和调度完全在用户态实现,不需要切换到特权模式因此相比于线程更加的轻量。协程非常适合于高并发和 IO 密集型操作,我们知道对于单核 CPU 来说,执行 IO 密集型任务时多线程可以提高效率,虽然此时多线程会带来额外的线程上下文切换开销,但它能更好地协调 CPU 和 IO 的占用,而显然协程能更轻量更高并发地完成这件事。
2024-07-05 15:14:45
434
原创 如何将wsl配置为一台局域网服务器
wsl 和 win 同为运行在 hyper-v 上的虚拟机,win 直接连接实际网卡,连接学校校园网。wsl 默认采用 NAT 模式,这意味着 wsl 和 win 上都有一块虚拟网卡,配合虚拟的路由器和交换机,再次组成一个内网。由于 win 和 wsl 都有着虚拟网卡,因此他们都有着相应的内网 ip,同时虚拟的路由器(网关)也有着一个网关 ip(路由器内网端口的内网 ip),虚拟路由器的外网端口连接着实际网卡,其 ip 等于 win 的校园网 ip。
2024-05-07 11:00:09
1409
2
原创 动态代理详解
Apple 类实现了 Fruit 接口,我们对 Apple 类进行代理。无论是静态代理还是动态代理,代理的本质都是我们,通过的方式来完成被代理类功能的与。
2024-05-07 10:58:31
531
原创 如何vscode中刷力扣
做过的题如果再次做,没有思路或者写起来不顺畅,可以添加到错题本中。中等+正确率 65%以下+评论数 100 以上,才需要刷。需要定期不断地刷,才能记牢,建议一周复习一次。
2024-05-06 21:34:03
699
4
原创 如何用Jmeter压测
可以从清华源下载,我下的是 5.6.3 版本。bin 目录打开终端,输入 Jmeter 运行Options 点 Choose language 选择中文。
2024-05-06 21:32:45
528
4
原创 Java自限定泛型
在下面这段代码中,BasicHolder 只是一个普通的泛型类,里面定义了关于泛型 T 的一些操作,接下来定义了一个 A 类,我们发现A 类继承 BasicHolder 父类的时候给的泛型就是 A 类自身,这也意味着 A 类继承了其父类关于 A 类的所有操作。这种子类称之为自限定子类,自限定子类的意义在于限定了父类关于泛型的操作必须是针对子类同类的,简单来说就是自限定子类只能和自己同类型对象交互。this.t=t;return t;T t = null;a.get();a.print();
2024-05-03 11:55:41
881
原创 操作系统总结
如应用程序只想读取磁盘文件 A 偏移量为 0-3KB 的数据,磁盘的基本读写单位为 4KB 正好对应一个内存页大小,但操作系统由于局部性原理会选择将 0-15KB 的数据都读入内存,一共四个文件页 Page cache 缓存。这样后面如果读 4-15KB 数据的时候可以直接从 Page cache 读出,从而提高了文件读取效率。
2024-04-30 22:01:14
819
原创 Java自限定泛型
类泛型的应用范围是属性、方法中的形参、方法中的返回类型、方法中的局部变量。非应用范围是静态属性、静态方法中的形参、静态方法中的返回类型、静态方法中的局部变量。原因在于泛型只和对象有关,而静态属性和静态方法只和类有关,和对象无关。在下面这段代码中,BasicHolder 只是一个普通的泛型类,里面定义了关于泛型 T 的一些操作,接下来定义了一个 A 类,我们发现A 类继承 BasicHolder 父类的时候给的泛型就是 A 类自身,这也意味着 A 类继承了其父类关于 A 类的所有操作。这种子类称之为。
2024-04-30 21:58:55
618
1
原创 系统调用解释
系统调用的核心作用是限制程序员操作底层资源,限制程序员读写内核虚拟内存空间。所有系统调用函数均存储于内核内存。GNU C 库(glibc)提供了 C 标准库函数,其中就包含对系统调用的封装。无论调用哪一个系统调用函数,其函数执行的最后一定是先将中断号和系统调用参数写入 CPU 寄存器,然后执行int 0x80。
2024-04-19 15:58:12
452
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人