自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 操作系统之死锁的相关概念

一、什么是死锁?死锁是在多道程序系统中,一组进程中的每一个进程均无限期地等待该组进程中的另一个进程所占有并且永远不会释放的资源。二 、死锁产生的原因:①竞争资源,系统提供的资源数量有限,不能满足每个进程的需求,   如磁带机、打印机等。只有对不可剥夺资源的竞争 才可能产生死锁,对可剥夺资源的竞争是不会引起死锁的。②多道程序运行时,进程推进顺序不合理。例如,并发进程 P1

2017-03-30 22:07:49 778

原创 线程间同步与互斥:生产者消费者问题

总结一下线程间同步与互斥生 产者消费者问题1互斥锁(mutex)对于多线程的程序,访问冲突的问题是很普遍的,解决的办法是引⼊入互斥锁(Mutex,MutualExclusive Lock),获得锁的线程可以完成“读-修改-写”的操作,然后释放锁给其它线程,没有获得锁的线程只能等待⽽而不能访问共享数据,这样“读-修改-写”三步操作组成一个原⼦子操作,要么都执⾏行,要么都不执⾏行,不会执⾏行到

2017-03-30 21:45:11 1737

转载 c++中string类常用函数总结

标准c++中string类函数介绍注意不是CString之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据

2017-03-28 19:06:36 645

原创 排序算法(四) 基数排序

本篇博客介绍基于顺序表的实现 LSD,MSD 两种方式基本思路:看排序数组中最大值的位数,比如说最大值是999,就是三位 K1K2K3,先按K3扫描一遍数组,分别记下K3位为0的个数,为1的个数,……为9的个数,用数组coun[10]来记录,再使用一个数组addr[10]来记录每个桶的起始位置计算起始地址:addr[idx] = addr[idx-1] + count[idx -1], 再

2017-03-26 19:54:42 789

原创 求二叉树中两个节点的最低公共祖先节点

本篇博客接着写二叉树的面试题中:二叉树面试题(一)   二叉树面试题(二)  求树中两个节点的最低公共祖先节点这个题可能有几种不同的条件,那这样就是不同的问题(1) 树是二叉树,且是二叉搜索树。思路:如果是二叉搜索树,二叉搜索树是排序过的,位于左子树的节点都比父节点小,位于右子树的节点都比父节点大。我们只需要从树的根节点开始和两个输入的节点进行比较。如果当前节点的值比两个节点的值都

2017-03-21 16:00:32 5018 1

原创 二叉树的面试题(二)

接着上篇博客接着讲述二叉树的面试题9 由前序遍历序列和中序遍历序列重建二叉树10 判断一个节点是否在二叉树中11 判断二叉树是不是平衡二叉树12 判断一颗二叉树是否为完全二叉树13 求二叉树的镜像14 将二叉查找树变为有序的双向链表

2017-03-18 17:44:21 578

原创 二叉树的面试题(一)

二叉树面试题:1 创建二叉树2 前序 中序 后序遍历(递归和非递归)3 层序遍历4求二叉树的深度5求二叉树中叶子结点的个数6 求二叉树中节点的个数7求二叉树第k层的节点个数8 判断两棵二叉树是否结构相同

2017-03-18 17:41:21 818

原创 Linux下IPC主题三----------------共享内存

共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以,共享内存本身并不提供。共享内存为什么效率高:因为不像管道以及消息队列一样,读写时进行拷贝两次,而共享内存直接进行

2017-03-15 20:30:58 486

原创 排序算法(二)选择类排序:简单选择排序,堆排序,锦标赛排序

本篇博客介绍的是选择排序中的三种排序;简单选择排序,锦标赛排序和堆排序选择类排序的基本思想:每一趟在n-i+1个记录中选取关键字最小的记录最为有序序列中第i个记录。一、简单选择排序简单选择排序的基本思想:每i趟排序时,从第i个记录开始,通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换.代码:void SelectionSort2(int a

2017-03-14 15:56:28 2582

原创 排序算法(一) 插入排序和希尔排序

本篇博客介绍的是排序算法(一) 插入排序:直接插入排序和希尔排序 插入排序的思想:在一个已排好序的记录子集的基础上,每一步将下一个待排序的记录语序插入到已排好序的记录子集中,直到将所有待排记录全部插入为止。一、直接插入排序 直接插入排序是一种最基本的插入排序方法,其基本操作是将第i个记录插入到前面i-1个已排好的记录中。 直接插入排序的思想:将第i个元素的关键字Ki,顺次与前面记录

2017-03-13 18:18:31 995

原创 Linux下IPC主题二-------------信号量

一、什么是信号量信号量的本质是一种数据操作锁,它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信,它本身只是一种外部资源的标识。信号量在此过程中负责数据操作的互斥、同步等功能,保护临界资源。二  为什么使用信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线

2017-03-10 17:36:11 329

原创 简述Linux系统与内核是如何构成的以及 linux内核是如何构成的

Linux系统与内核是如何构成的 从图上我们可以知道,Linux系统是由用户空间和内核空间两部分组成。Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G。Linux内核将这4G的空间划分为两部分:内核空间  最高的1G(0xC0000000~0xFFFFFFFF),供内核使用。用户空间 将较低的3G字(0x0000000

2017-03-09 22:51:39 1895

c# 编写 人力资源管理系统

编写的简单 人力资源管理系统,其中链接 数据库

2016-07-11

空空如也

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

TA关注的人

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