
web开发入门
文章平均质量分 66
web开发入门
_wjunjie
加油吧!
展开
-
6.824 lab2 raft实现
目前感觉代码逻辑的严谨性才是最大的难点,例如发投票/发送心跳/发日志的过程,无论对于信息的接受方还是发送方,都需要通过对接受/反馈得到的信息来判断自己目前所应处的三种节点状态,这个问题在论文的Figure 2中是有提到的,另外自己参考的代码中也有对应实现,但自己复现时就没考虑周全,以至于最后对着参考代码一行一行的找问题,自己写的代码和参考代码还有很多的地方思路不太一样,就导致调bug变的异常困难。而对于persist()函数,则所有代码中,修改上述三个量的地方都应该调用一次persist()函数。原创 2023-08-21 21:51:00 · 759 阅读 · 0 评论 -
JVM学习随笔04——垃圾回收
③步骤:初始标记(标记GC roots的一阶邻居)、并发标记(可达性分析)、重新标记(针对并发标记过程中变动的标记进行调整)、并发清除;其中耗时的操作为并发标记和并发清除过程,所以,做成了并发的。CPU核多的时候没问题,少的时候一部分执行GC线程、一部分执行用户线程,用户线程可能执行的比较慢。预留一定的内存,不等到老年代空间全用完了再开启回收,用个百分之六七十或者七八十就开始回收。标记-整理算法:和标记清除差不多,但不会有碎片问题,不适合新生代。② 步骤:初始标记——并发标记——最终标记——筛选回收。原创 2023-05-10 14:56:23 · 842 阅读 · 0 评论 -
JVM学习随笔03——Java堆中new一个对象的步骤
同时指向堆中的对象实例,所以对象实例位置改变,这些引用都要改变,而句柄就相当于对这些引用进行了一次汇总。那为什么修改句柄池就比修改虚拟机栈要优呢?实际上因为虚拟机栈中会有。原创 2023-05-09 17:21:31 · 857 阅读 · 0 评论 -
JVM学习随笔02——虚拟机内存区组成与内存溢出异常
PS:程序中的常量不一定在编译器全部加入运行时常量池,运行过程中产生的常量也可以加入常量池中。资料上说直接内存不属于虚拟机运行时数据区的一部分,不是很理解前面这句话...但能确定的是在根据物理机内存确定JVM所需内存空间时要把这一部分占用的空间也考虑上。原创 2023-05-06 22:51:41 · 473 阅读 · 0 评论 -
JVM学习随笔01——发展史
生态比较好算一个,但觉得随着国内程序员基数越来越大,水平也越来越高,Java有的这些生态其他语言以后大概率也会有。所以,学一种技术既要有一定深度,深度能帮自己找到一份保证生存的工作,也要有广度,广度能够提升自己的视野,在赖以生存的一种技术被淘汰时能更好的选择未来发展方向。典型如Oracle推出的Graal VM,“无语言倾向”、“更优秀的即时编译器”等等都挺吸引人的,不过自己目前对这些技术的应用场景、底层原理等等都还比较陌生,不太能get到这些优点...原创 2023-05-06 17:40:09 · 100 阅读 · 0 评论 -
后端入门——玩具项目GoBang常使用的工具:tmux、docker、nginx、学着查看日志
本地的终端关闭,服务器中tmux中的程序仍然保持运行;原创 2023-05-06 15:23:47 · 896 阅读 · 0 评论 -
后端入门——Docker容器查看端口占用情况、开启ssh相关工具的linux命令
如果netstat命令显示没有“ssh工具正在监听22端口”相关的行,本项目中使用命令开启ssh相关工具;docker容器中ssh相关工具关闭,导致无法用xhell访问docker的22端口;如果22端口被其他程序占用,可以考虑kill -9 占用程序;原创 2023-05-05 20:45:11 · 1807 阅读 · 0 评论 -
Java并发控制 学习笔记1
正常的锁当一个线程拿不到共享资源时,会把该线程阻塞,等共享资源释放后,再唤醒该阻塞线程并进行调度;自旋锁当一个线程拿不到共享资源时,它就一直while循环来询问该资源释放了没有,会一直占用cpu资源。如果大多事务的执行时间很短,自旋锁空转一会就能拿到资源,就用自旋锁,这时如果采用阻塞/唤醒思路的话,调度的时间消耗会比较大。flag = 0;= 1);flag = 2;= 2);flag = 0;原创 2023-04-11 17:15:06 · 1141 阅读 · 0 评论