自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 C++ 零长度数组及其类型转换

C++ 中在一个结构体或类的最后可以申明一个长度为 0 的数组,这会使结构体成为可变长的。class Line {public: string ToString() const { stringstream s; s << "length: " << length << " content: "; for (int i = 0; i < length; ++i) { s << content[i] <&

2022-05-06 22:03:05 805

原创 Ubuntu 20.04 安装 clang-8 报错

最近学习 CMU 的数据库课程,编程作业需要安装 clang-8,但是在 Ubuntu 20.04 安装时却遇到了错误:libclang-common-8-dev (= 1:8.0.1-9) but it is not going to be installed# apt install clang-8Reading package lists... DoneBuilding dependency treeReading state information... DoneSome packages

2022-04-24 11:12:34 3145 1

原创 Linux 学习笔记——第二章 进程管理和调度(6)

Linux 学习笔记——第二章 进程管理和调度(6)《深入 Linux 内核架构》阅读笔记。书籍参考的内核版本较老,文章参考的 Linux 内核版本为 5.4.103,并根据新版内核调整了一些代码片段文章目录Linux 学习笔记——第二章 进程管理和调度(6)处理优先级优先级的内核表示计算优先级计算负荷权重核心调度器周期性调度器主调度器与 fork 的交互处理优先级优先级的内核表示在用户空间可以通过 nice 命令设置进程的静态优先级,这在内部会调用 nice 系统调用。进程的 nice 值在

2021-04-06 17:44:54 128

原创 Linux 学习笔记——第二章 进程管理和调度(5)

Linux 学习笔记——第二章 进程管理和调度(5)《深入 Linux 内核架构》阅读笔记。书籍参考的内核版本较老,文章参考的 Linux 内核版本为 5.4.103,并根据新版内核调整了一些代码片段文章目录Linux 学习笔记——第二章 进程管理和调度(5)启动新程序调度器概览调度器相关数据结构task_struct 的成员调度器类就绪队列调度实体启动新程序Linux 使用 execve 系统调用启动新程序,用新代码替换现存程序,该系统调用会调用体系结构无关的 do_execve 函数。fil

2021-03-29 16:17:01 300

原创 Linux 学习笔记——第二章 进程管理和调度(4)

Linux 学习笔记——第二章 进程管理和调度(4)《深入 Linux 内核架构》阅读笔记。书籍参考的内核版本较老,文章参考的 Linux 内核版本为 5.4.103,并根据新版内核调整了一些代码片段文章目录Linux 学习笔记——第二章 进程管理和调度(4)进程复制写时复制执行系统调用`_do_fork` 的实现`copy_process` 的实现内核线程进程复制Linux 中用于复制进程的系统调用有 3 个:fork 是重量级调用,因为它建立了父进程的一个完整副本,然后作为子进程执行。

2021-03-24 09:15:22 150

原创 Linux 学习笔记——第二章 进程管理和调度(3)

Linux 学习笔记——第二章 进程管理和调度(3)《深入 Linux 内核架构》阅读笔记。书籍参考的内核版本较老,文章参考的 Linux 内核版本为 5.4.103,并根据新版内核调整了一些代码片段文章目录Linux 学习笔记——第二章 进程管理和调度(3)进程 ID管理 PID相关数据结构相关函数生成 PID进程关系进程 IDUNIX 进程总是会分配一个号码用于在其命名空间中唯一地标识它们。该号码被称作进程 ID 号,简称 PID。用 fork 或 clone 产生的每个进程都由内核自动地分

2021-03-21 11:08:26 176

原创 Linux 学习笔记——第二章 进程管理和调度(2)

Linux 学习笔记——第二章 进程管理和调度(2)《深入 Linux 内核架构》阅读笔记。书籍参考的内核版本较老,文章参考的 Linux 内核版本为 5.4.103,并根据新版内核调整了一些代码片段文章目录Linux 学习笔记——第二章 进程管理和调度(2)进程类型命名空间概念实现UTS 命名空间进程类型典型的 UNIX 进程包括:由二进制代码组成的应用程序、单线程、分配给应用程序的一组资源(如内存、文件等)。新进程是使用 fork 和 exec 系统调用产生的。fork 生成当前进程的一

2021-03-20 16:34:05 196

原创 Linux 学习笔记——第二章 进程管理和调度(1)

Linux 学习笔记——第二章 进程管理和调度(1)《深入 Linux 内核架构》阅读笔记。书籍参考的内核版本较老,文章参考的 Linux 内核版本为 5.4.103,并根据新版内核调整了一些代码片段文章目录Linux 学习笔记——第二章 进程管理和调度(1)调度器进程优先级抢占式多任务处理Linux 的调度器“僵尸”进程进程表示进程的当前状态资源限制机制调度器调度器是 Linux 内核的一个子系统,它的主要职责有:内核必须决定为各个进程分配多长时间,何时切换到下一个进程,这又引出了哪个进程

2021-03-18 20:39:14 129

原创 Flutter 多图选择 multi_image_picker 上传图片

Flutter 多图选择 multi_image_picker 上传图片最近需要使用 Flutter 实现一个“选择多张图片并上传到后端”的需求,Flutter 官方提供的 image_picker 插件只支持选择一张图片,因此决定使用第三方插件 multi_image_picker。但是 multi_image_picker 因为兼容原因不直接返回文件名,只能返回 ByteData ,上传到后...

2020-02-10 10:51:39 15509 8

原创 Java 并发笔记(一):synchronized 对 Integer 加锁的注意事项

最近在学习 Java 并发的相关知识,发现 synchronized 锁对 Integer 等基本类型的包装类没有效果,示例如下:public class AccountingSyncBad implements Runnable { static volatile Integer i = 0; public static void increase() { s...

2019-04-17 11:07:32 2014

原创 HashMap 源码阅读笔记

HashMap 和 HashTable 的区别HashMap 是线程不安全的。HashMap 允许 value 和 key 为 null。HashMap 的继承关系从关系图可以看出 HashMap 继承了 AbstractMap 类,实现了 Map、Cloneable 和 Serializable 接口。HashMap 的属性HashMap 有两个影响性能的参数:初始容量(in...

2019-04-16 18:52:04 111

原创 Java 中的取模和取余

期末复习密码学时需要用到取模运算,发现 Java 中的 % 运算符并不是取模运算(Modulo Operation),而是取余运算(Complementation)。计算方法对于整数 aaa,bbb 来说,取模运算和取余运算的过程相同:求整数商:c=a/bc = a / bc=a/b计算模或者余数:r=a−c×br = a - c \times br=a−c×b只是取模和取余在第一步...

2019-01-14 10:50:23 6576

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除