- 博客(14)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 实用&收藏
https://www.jetbrains.com/zh-cn/idea/download/other.htmlhttp://www.codebaoku.com/jdk/jdk-index.html
2023-10-08 10:18:04
219
原创 Spring IOC三级缓存解决Bean循环依赖
循环依赖场景如下,Bean A 依赖了 Bean B,Bean B 又依赖了 Bean A,流程图。
2024-03-12 16:11:16
377
1
原创 并发编程之死锁
接上一篇文章转账操作死锁问题:https://blog.csdn.net/weixin_39707461/article/details/133893488?回忆:线程1(A给B转账):1)锁住 账户A,2)锁住 账户B;线程2(B给C转账):1)锁住 账户B,2)锁住 账户A;线程1 与 线程2 互斥,因为不可能都同时获取到账户A和账户B的锁,所以不可以发生在同一时刻。总结:该方法可以保证并发安全。
2023-10-18 23:39:00
33
原创 并发编程之互斥锁
声明账户类:Account,该类有一个成员变量余额:balance,还有一个用于转账的方法:transfer()。假设有三个账户:账户A、账户B、账户C,三个账户里面的余额都是200。同一时刻,账户A 向 账户B 转账100,账户B 向 账户C 转账100,正确结果应该是 账户A 余额为100,账户B 余额为200, 账户C 余额为 300。然后怎么保证转账操作 transfer() 没有并发问题呢?
2023-10-17 20:29:19
35
原创 并发编程之可见性、有序性、原子性
1:导致可见性问题的原因:CPU缓存;所以最直接的办法:禁用缓存。2:导致有序性问题的原因:编译器优化;所以最直接的办法:禁用编译优化。3:导致原子性问题的原因:线程切换;操作系统线程切换是依赖CPU中断的,所以最直接的办法:禁止CPU发生中断。
2023-10-10 20:36:58
36
原创 并发编程之源头
我们都知道,CPU速度 >> 内存速度 >> I/O设备速度,但是大部分程序都是需要内存,有的还需要访问I/O,根据木桶理论(一只水桶能装多少水取决于它最短的那块木板),程序整体的性能取决于最慢的操作——读写 I/O 设备,也就是说单方面提高 CPU 性能是无效的。为了提高对CPU的利用率,计算机大佬们做了些优化:1:CPU 增加了缓存,以均衡与内存的速度差异;2:操作系统增加了进程、线程,以分时复用 CPU,进而均衡 CPU 与 I/O 设备的速度差异;
2023-09-28 16:03:46
22
原创 redis中的数据结构-学习记录
1.3:什么时候会触发rehash。3.2:会有连锁更新的问题,压缩列表的节点大小会受前一个节点的大小的影响,所以有可能一个节点的更新会导致所有后续节点的内存空间重新分配,1:为了弥补链表查找慢而且占用内存较多而且内存不连续导致不能很好的利用cpu缓存,于是创建了拥有连续内存的压缩列表。redis解决hash冲突是通过链式地址法的,就是两个节点冲突了就连成一个链表。3.3:redis在后面的版本中淘汰了压缩列表,使用listpack结构来替换了。3.1:只能存少量的节点,因为节点数太多查找性能会变慢。
2023-05-14 23:05:58
31
1
原创 强引用 软引用 弱引用-学习记录
将对象用SoftRefence包装起来,那么栈桢里面的强引用就只会指向SoftRefence,SoftRefence 的软引用指向 对象。这样的对象在内存不足时就会被回收。将对象用WeekRefence包装起来,弱引用只要JVM出现full gc就会回收,哪怕空间足够,手动调用了一下 System.gc,也会被回收。JVM运行中,当前线程的栈桢没有退出,则栈桢里面的引用会一直存在,即使 内存溢出 也不能被回收;1: 显示把引用置为 null,并给gc预留一点时间。2: 当前方法执行完毕,栈桢不在栈中了。
2023-04-08 16:54:57
42
1
原创 BIO NIO AIO-学习记录
第三种方案(在网卡升级了的环境下改进的 sendFile):使用sendFile系统调用来代替 read + write 操作,此时在内核中数据不需要从 pageCache 中通过cpu缓存到 Socket缓冲区中,直接通过SG-DMA拷贝技术从 pageCache 中拷贝到网卡。第一种方案(mmap + write):通过mmap建立用户态和内核态的内存地址映射,这样就可以减少两次内核态和用户态之间的cpu拷贝了,但是会增加一次从pageCache到Socket缓冲区的cpu拷贝。
2023-04-08 16:48:27
163
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人