Linux的启动过程 1.启动并加载BIOS,对硬件进行检测,查找并加载MBR。 2.找到MBR后,存储BootLoader信息,加载GRUB。 3.查找并加载kernel。 4.装载驱动,挂载rootfs,执行/sbin/init。 5.OS初始化后,执行runlevel程序。 6.启动指定级别的 ...
分类:
系统相关 时间:
2020-07-09 19:24:13
阅读次数:
95
#1. journaling 相关的pull request librbd: integrate journaling support for IO operations #6541 (https://github.com/ceph/ceph/pull/6541) () librbd: integr ...
分类:
数据库 时间:
2020-07-09 12:14:39
阅读次数:
69
首先来说下synchronize和Lock的区别: 两者都是锁,用来控制并发冲突,区别在于Lock是个接口,提供的功能更加丰富,除了这个外,他们还有如下区别: synchronize自动释放锁,而Lock必须手动释放,并且代码中出现异常会导致unlock代码不执行,所以Lock一般在Finally中 ...
分类:
其他好文 时间:
2020-07-04 17:07:38
阅读次数:
104
一、 概述 本文首先介绍Lock接口、ReentrantLock的类层次结构以及锁功能模板类AbstractQueuedSynchronizer的简单原理,然后通过分析ReentrantLock的lock方法和unlock方法,来解释ReentrantLock的内部原理,最后做一个总结。本文不涉及R ...
分类:
其他好文 时间:
2020-06-30 14:29:17
阅读次数:
38
go中的copy,一般习惯来讲都是值拷贝,但是这种拷贝存在的问题是锁对象的“失效” 如何对一个对象进行nocopy处理,下面是一种方式 package main import ( "fmt" ) type noCopy struct{} // Lock is a no-op used by -cop ...
分类:
其他好文 时间:
2020-06-29 22:58:40
阅读次数:
63
整体说明远程升级篇主要实现的是远程升级STM32程序.STM32通过网络模块进行http/https下载程序文件把程序文件写入flash,执行.升级方式分为备份升级和乒乓升级备份升级:<ignore_js_op>BootLoader:1.把用户程序运行区的程序备份到用户程序备份区.(更新前)2.把程 ...
分类:
其他好文 时间:
2020-06-27 09:21:09
阅读次数:
215
线程安全 当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象是线程安全的 Brian Goetz 多线程安全问题是什么? 问题: 多线程在修改共享资源的时 ...
分类:
编程语言 时间:
2020-06-26 18:37:58
阅读次数:
78
下载地址: hsdis linux下将hsdis.so拷贝到 /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/lib/server 目录下(相对应于你的jdk目录lib/server下) window好像也差不多 可以先测试下是否成功 ja ...
分类:
编程语言 时间:
2020-06-25 12:08:13
阅读次数:
66
1. 系统安装程序anaconda bootloader --> kernel(initrd(rootfs)) --> anaconda anaconda: tui:基于cureses的文本配置窗口 gui:图形界面 2. CentOS安装的启动流程 2.1 第一阶段:MBR:boot.cat 在光 ...
分类:
其他好文 时间:
2020-06-23 15:23:14
阅读次数:
82
1. 概念 自旋锁的目的是在短期间内进行轻量级的锁定,解决对某项共享资源的互斥使用,在等待锁重新可用期间进行自旋,所以自旋锁不应该被持有时间过长,如果需要长时间锁定的话,推荐使用信号量。实际操作的数据结构如下: 2. 获取锁 最终执行的代码是体系结构相关的自旋锁实现:arch_spin_lock。 ...
分类:
其他好文 时间:
2020-06-23 14:59:38
阅读次数:
51