会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
hellozhangjz
博客园
首页
新随笔
管理
上一页
1
2
3
4
5
6
···
14
下一页
2024年3月8日
Mysql-索引
摘要: 主键索引:表的主键为 B+Tree 的 key。 二级索引:二级索引的 value 是表的主键,这样做的好处是 B+Tree 的节点小,可以一次放入更多节点到内存,减少 IO 次数。缺点是需要回表:通过二级索引查到的主键,再去主键索引查需要的信息。 聚簇索引:索引结构和数据一起存放的索引,InnoD
阅读全文
posted @ 2024-03-08 10:56 hellozhangjz
阅读(20)
评论(0)
推荐(0)
2024年3月7日
C++保证线程安全的方式
摘要: 1、互斥量 可以确保同一时间只有一个线程访问临界区,防止出现竞态条件。 2、原子操作 std::atomic<int> mutex(1); 对原子变量的操作是线程安全的。 3、读写锁 std::shared_mutex mutex; // 读者:共享锁定 mutex.lock_shared(); m
阅读全文
posted @ 2024-03-07 19:55 hellozhangjz
阅读(232)
评论(0)
推荐(0)
C++ 萃取机 Iterator Traits
摘要: Iterator Traits 萃取出 Iterator 的性质:迭代器种类、迭代器所指数据类型、迭代器距离类型、迭代器所指数据引用、迭代器所指数据指针。根据不同的迭代器种类可以采取不同的算法策略。但是用iter::interator_categotry、iter::value_type、iter:
阅读全文
posted @ 2024-03-07 13:28 hellozhangjz
阅读(42)
评论(0)
推荐(0)
Mysql 基础
摘要: 创建数据库 CREATE DATABASE NAME; 创建表 # 中括号[]是可选的意思,命令中不带中括号 CREATE TABLE table_name ( column1 datatype [NULL or NOT NULL] [DEFAULT 默认值] [AUTO_INCREMENT PRI
阅读全文
posted @ 2024-03-07 10:41 hellozhangjz
阅读(20)
评论(0)
推荐(0)
2024年2月29日
内存管理
摘要: 内存管理 使用物理内存,不安全。 交换: 运行时把进程载入内存,不运行时放回磁盘。利用基址寄存器和界限寄存器计算动态地址。没法动态分配堆内存。 覆盖: 把程序分为很多段,先装入段0,运行完段0再装入段1,有空间就放在段0上边,否则就覆盖段0。 虚拟内存:让程序只有一部分被调入内存的情况下运行。 动态
阅读全文
posted @ 2024-02-29 13:46 hellozhangjz
阅读(22)
评论(0)
推荐(0)
死锁
摘要: 死锁的必要条件 资源互斥。 占有且等待:进程占有的资源在任务完成前不会主动释放。 不可抢占:进程不会强制抢占其他进程的资源。 循环等待。 死锁避免 在分配资源前看是否满足全部条件,不满足则不分配。(银行家算法。) 检测死锁 画出资源分配图,检测是否存在环路。检测环路前要将资源分配图化简,化简的原理是
阅读全文
posted @ 2024-02-29 13:13 hellozhangjz
阅读(14)
评论(0)
推荐(0)
经典同步问题及其伪代码实现
摘要: 1、生产者消费者问题 信号量版本: # 定义缓冲区大小 bufferSize = 10 # 定义互斥锁和信号量 mutex = Semaphore(1) full = Semaphore(0) empty = Semaphore(bufferSize) # 定义生产者函数 def producer(
阅读全文
posted @ 2024-02-29 13:03 hellozhangjz
阅读(162)
评论(0)
推荐(0)
进程调度算法
摘要: 1、 先来先服务 简单,但对短作业不公平。 2、 短作业优先 有抢占和非抢占版本。对长作业不公平,会导致饥饿问题。 3、 高响应比优先 响应比:等待时间/预计运行时间 没有饥饿问题。 4、 时间片轮转 没有饥饿问题。 若时间片小,进程切换频繁,吞吐量低;若时间片长,则响应时间过长,实时性得不到保证
阅读全文
posted @ 2024-02-29 11:06 hellozhangjz
阅读(15)
评论(0)
推荐(0)
进程和线程
摘要: 进程拥有资源,包括:内存空间中的代码、数据等;I/O 资源;打开文件;CPU等。 线程执行任务,线程只拥有CPU和少量寄存器,线程之间共享进程的资源。 为什么需要线程 进程切换开销大,主要包括: CPU的上下文切换:保存和恢复相关寄存器的内容 进程相关的数据结构切换:页表、文件描述符、消息队列等.
阅读全文
posted @ 2024-02-29 10:51 hellozhangjz
阅读(12)
评论(0)
推荐(0)
用户态与内核态
摘要: 为什么区分内核态和用户态 用户会进行不安全的访问和修改。 操作系统没法进程调度,因为拿不到cpu的执行权。 所以要区分权限,普通进程需要执行特殊操作的时候,需要让内核代为操作(陷入内核)。 什么时候陷入内核 系统调用(trap)、中断(interrupt)和异常(exception)。 系统调用是用
阅读全文
posted @ 2024-02-29 10:18 hellozhangjz
阅读(35)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
···
14
下一页
公告