摘要: 前置知识 在 MySQL 中,GROUP BY 关键字可以根据一个或多个字段对查询结果进行分组 在有 GROUP BY 操作中,SELECT 后面接的结果集字段只有两种:要么就只有 GROUP BY 后出现的字段,要么就是 GROUP BY 后出现的字段+聚合函数的组合 常用的五种聚合函数:MIN( 阅读全文
posted @ 2022-08-06 23:53 伊文小哥 阅读(2521) 评论(0) 推荐(1) 编辑
摘要: 简介 在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象,就是死锁。发生死锁后若无外力干涉,这些进程都将无法向前推进 死锁、饥饿、死循环的区别 死锁产生的必要条件 互斥条件 不可剥夺条件 资源的占用并请求条件 循环等待条件 什么时候会产生死锁 临 阅读全文
posted @ 2022-08-06 15:45 伊文小哥 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 树的定义 树是由n(n>=0,n=0时称为空树)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的 树具有以下特点 每个结点有零个或多个子结点,比如:B结点有一个D字节点,G结点没有子节点 没有父结点的结点为根结点,比如:A结点 每一个非 阅读全文
posted @ 2022-08-06 15:04 伊文小哥 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 简介 在信号量机制中,每个要访问临界资源的进程都必须自备同步的PV操作,大量分散的同步操作会给系统管理带来麻烦,且容易因为同步操作不当而导致系统死锁。于是便产生了一种新的进程同步工具——管程(Monitors) 管程(Monitors):是一个资源管理模块,其中包含了共享资源的数据结构,以及由对该共 阅读全文
posted @ 2022-08-04 23:14 伊文小哥 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 简介 该问题描述的是五个哲学家共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上五只筷子,他们是交替的进行思考和进餐。一个哲学家进行思考,饥饿时便试图取用其左右最靠近他的筷子,只有在他拿到两只筷子时才能进餐。进餐完毕,放下筷子继续思考 哲学家进餐问题是诸进程间竞争临界资源而导致死锁的典型例子 解决方式 阅读全文
posted @ 2022-08-03 22:24 伊文小哥 阅读(522) 评论(0) 推荐(0) 编辑
摘要: 简介 实现读者和写者问题是一个经典的并发程序设计问题,是经常出现的一种同步问题。所谓读者写者问题,是指保证一个写进程必须与其他进程互斥地访问共享对象的同步问题 因此要求: ①允许多个读者可以同时对文件执行读操作 ②只允许一个写者往文件中写信息 ③任一写者在完成写操作之前不允许其他读者或写者工作 ④写 阅读全文
posted @ 2022-08-03 22:23 伊文小哥 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 简介 系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲器取出一个产品并使用(产品可以理解为某种数据) 生产者、消费者共享一个初始为空、大小为n的缓冲区 只要缓冲区没满时,生产者才能把产品放入缓冲区,否则必须等待--同步关系 只有缓冲区不空时,消费者才 阅读全文
posted @ 2022-08-02 22:28 伊文小哥 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 前置知识 用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步 信号量 信号量其实就是一个变量(可以是一个整数,也可以是更复杂的记录型变量),可以用一个信号量来表示系统中某种资源的数量,比如:系统中只有一台打印机,就可以设置一个初值为1的信号量 一对原语 阅读全文
posted @ 2022-08-02 22:27 伊文小哥 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 简介 散列表(也称哈希表),是根据关键码值(key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表 它可以快速的进行插入、查找、删除操作,无论数据量有多大,它都能把插入、查找和删除操作 阅读全文
posted @ 2022-08-01 23:25 伊文小哥 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 进程的同步 进程同步也是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个进程,这些进程需要在某些位置上协调它们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于它们之间的合作 比如进程A需要从缓冲区读取进程B产生的信息,当缓冲区为空时,进程B因为读取不到信息而被阻塞。而 阅读全文
posted @ 2022-07-31 16:59 伊文小哥 阅读(251) 评论(0) 推荐(0) 编辑