dove1202ly的博客

keep runing

【Linux】进程间通信之信号篇

今天我们来看进程间通信中唯一的异步通信机制----->信号我们之前看过信号量,信号量的本质是一个计数器;千万不要跟今天的信号搞混,Linux中的信号是向进程异步发送的事件通知,通知进程有事件(硬件异常、程序执行异常、外部发出信号)发生。进程间可以相互发送信号,内核也可能在内部...

2018-04-25 20:15:28

阅读数 44

评论数 0

【Linux】进程间通信之信号量篇

在Linux中支持System V 进程通信的手段有三种:消息队列(Message queue)、信号量(Semaphore)、共享内存(Shared memory)。消息队列点击打开链接、共享内存点击打开链接,今天我们主要来看信号量。。。。在看信号量之前,我们先来看几个概念进程互斥:由于各进程要...

2018-04-19 11:44:35

阅读数 485

评论数 0

并查集disjoin set

在一些应用问题中,需要将n个不同的元素划分为一组不相交的集合,开始时,每个元素自成一个单元素集合,然后按一定规律将归于同一组元素的集合合并。在此过程中要反复用到查询某个元素属于哪个集合的运算。适合于描述这类问题的抽象数据类型的数据结构称之为并查集(union_find set)并查集需要两种数据类...

2018-04-18 22:15:21

阅读数 75

评论数 0

【Linux】进程间通信之共享内存SharedMemory篇

在前面的博文中,我们认识到了进程间通信的两种方式--->管道点击打开链接以及消息队列点击打开链接,今天我们来看另一种方式---->共享内存之前我们在剖析程序在内存中到底如何分配的时候,我们肯定见过下面的图那,望文生义,linux中的共享内存是不是跟这块的...

2018-04-16 22:26:49

阅读数 404

评论数 0

排序算法之快速排序以及优化

顾名思义,就是一种速度特别快的快速排序也叫分区排序,是目前应用最广泛的排序算法,人如其名,就是很快,而且快速排序算法在空间上只使用一个小的辅助栈,其内部循环也很小,另外快排很容易实现,消耗的资源也很小。 【基本思想】 (1)任取待排序元素序列中的某个元素(例如取第一个元素)作为基准 (2)按...

2018-04-14 23:48:16

阅读数 51

评论数 2

三种插入排序算法解析

【前言】我们常见的排序主要分为两类,一类是内部排序,一类是外部排序1.内部排序:数据元素放在内存中的排序2.外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求能在内外村之间移动数据的排序首先我们先来了解一下如何判断一个排序算法的性能好坏?依据是什么?一般而言有三个依据:稳定性、时间复杂度...

2018-04-14 18:18:45

阅读数 310

评论数 0

【C语言】实现一个函数,可以左旋字符串中的k个字符。

【每日一题】实现一个函数,可以左旋字符串中的k个字符。                     AABCD左旋一个字符得到ABCDA                     AABCD左旋两个字符得到BCDAA【思路】利用循环【代码实现】void leftmove(char* arr, int s...

2018-04-13 21:54:45

阅读数 43

评论数 0

【C语言】编写一个函数实现n^k,使用递归实现

【每日一题】编写一个函数实现n^k,使用递归实现(代码很简单,就不分析了)int funC(int n, int k) { if (k <= 0) return 0; else if (n == 1) return 1; else if (k == 1) { ...

2018-04-12 21:59:00

阅读数 242

评论数 0

【C语言】一组数据中只有一个数字出现了一次

【每日一题】一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)【思路】利用异或运算(相同为0,相异为1),就跟冒泡思想一样,从第一个数字开始,让其跟之后的每个字符相比,利用异或运算思想,再设一个标记,将相同的标记起来,然后第二个数字跟他之后的数字作比较.....

2018-04-12 21:57:23

阅读数 186

评论数 0

【C语言】写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

【每日一题】写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19;【思路】首先我们先考虑特殊情况(1)当n小于0时(负数)------>返回0(2)当n大于等于0且小于9时...

2018-04-12 21:45:47

阅读数 182

评论数 0

【Linux】初识进程-基本概念

什么是进程?      进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,简单点说进程就是程序的一个执行实例或者正在执行的程序等,站在内核的角度,进程就是担当分配系统资源(CPU时间,内存)的实体程序与进程1.概念 程序:完成特定任务的一...

2018-04-07 22:33:13

阅读数 66

评论数 0

【Linux】进程间通信之消息队列篇

上篇我们讲了管道,那么今天我们着重来看看消息队列:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识,消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限制等缺点那么什么是消息队列呢?消息队列有哪些特点呢?消息队列提供了一个由一个进程向另外一个进程发送一块数据的方法每个...

2018-04-03 11:34:55

阅读数 75

评论数 0

【Linux】进程间通信之管道篇

首先我们来了解一下什么是进程间通信?进程间通信就如同人与人之间的交流一样,注重方式,各有利弊。通俗点讲进程间通信就是在不同进程之间传播或交换信息,那么,我们都知道进程之间是相互独立的,那么进程间通信的本质就是让两个毫不相干的进程看到同一份资源,那么我们又是如何解决这些矛盾的呢?我们实现进程间通信的...

2018-04-02 19:47:11

阅读数 71

评论数 0

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