自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hulk

愚公移山

  • 博客(13)
  • 收藏
  • 关注

原创 互斥锁与条件变量

互斥锁互斥锁用于保护临界区,使得任何时刻只有一个线程在执行其中的代码。确切的说,互斥锁用于保护多个线程或多个进程分享的共享数据。posix互斥锁被声明为具有pthread_mutex_t数据类型的变量。若互斥锁变量是静态分配的,则初始化为:    static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;若互斥锁变量是动态分配的(malloc)...

2018-04-23 21:02:05 285

原创 排序算法--归并排序

归并:将两个排好序的文件组合成一个更大的有序文件。选择和归并互补,选择将一个文件分解成两个独立的文件,而归并将两个独立的文件合并成一个文件。 归并排序的优点:就是无论什么样的输入,它对N个元素文件的排序所需时间与NlogN成正比。并可以顺序的访问数据。 其缺点:就是所需的空间与N成正比。 自顶向下归并排序:是将一个大的任务分成几个可以独立解决的部分,将...

2018-04-20 20:16:55 156

原创 排序算法--快速排序

快速排序是一种分治排序算法,将数组分为两个部分,然后分别对两个部分进行排序。划分过程是不稳定的,因为每个元素都有可能在交换时被移到大量与它相等的元素(未经检测)后面。划分过程如下:选择一个a[r]作为划分元素,这个元素在划分后将在最终的位置上。然后从数组的左端进行扫描,直到找到一个大于划分元素的元素。同时从数组的右端开始扫描,直到找到一个小于划分元素的元素。使扫描停止的这两个元素,显然在最终的划分...

2018-04-19 16:59:36 214

原创 排序算法--希尔排序

void Shellsort( ElementType A[ ], int N ){ int i, j, Increment; ElementType Tmp; for( Increment = N / 2; Increment > 0; Increment /= 2 )/*希尔排序的步长选择从n/2开始,每次再减半,直到最后为1*/ for( i = Increment; i...

2018-04-18 20:31:40 140

原创 排序算法--插入排序

void insert(int a[],int n){ int p,i,temp; if(a == NULL) return; for(p=1;p<n;p++) { temp = a[p]; for(i=p;i>0 && a[i-1] > temp;i--) a[i]=a[i-1]; a[i]=temp; } return;...

2018-04-16 20:07:44 161

原创 排序算法--冒泡法

冒泡法原理是遍历文件,如果相邻的两个元素大小不符合预期,则进行交换,重复直到有序为止。第一遍时,当遇到最小的元素时,将其与左边的元素逐个交换,直到将最小的元素移到队列的最左边。第二遍时,将第二小的元素放到队列左边的第二位中............void bubb(int a[],int n){ int i,j=0; for(i=0;i<n-1;i++)//n个元素,只需要n-1趟冒...

2018-04-16 19:44:46 14621 3

原创 Posix消息队列

概述消息队列可看做消息链表,线程可在队列中进行消息读写。在某个进程往一个队列写入消息之前,并不需要另外某个进程在该队列上等待消息的到达。一个进程可以往某个队列写入一些消息,然后终止,再让另一个进程在以后某个时刻读取这些消息。而管道或FIFO的最后一次关闭发生时,仍在该管道或FIFO上的数据将被清除。posix消息队列特点对posix消息队列的读总是返回最高优先级的最早消息。当往一个空队列放置一个消...

2018-04-15 21:04:13 307

原创 排序算法--选择排序

选择排序选出数组中最小的元素,交换放入数组第一的位置;选出数组中次小的元素,交换放入数组中第二的位置,直到整个数组有序。通过不断选出剩余元素中的最小元素实现。注:N个元素,只需要N-1趟交换操作(最后一个元素被自动归入正确的位置)#include <stdio.h>void swap(int *a,int *b){ if((a == NULL) || (b == NULL)...

2018-04-13 20:06:32 163

原创 管道和FIFO(有名管道) (三)

FIFOFIFO指代先进先出,first in first out,也称为有名管道。其是一个单向的(半双工)的数据流,每个FIFO有一个路径名与之关联,从而实现无亲缘关系的进程访问同一个FIFO。FIFO由mkfifo函数创建#include <sys/types.h>#include <sys/stat.h>int mkfifo(const char *pathn...

2018-04-12 20:34:58 263

原创 管道和FIFO(有名管道) (二)

全双工管道全双工管道需要双向通信,使用两个独立的数据流,故需要两个半双工管道实现实现全双工,每个方向一个。因为一个管道只存在一个缓冲区,写入管道的任何数据都添加到该缓冲区的末尾,从管道读出的都是取自该缓冲区开头的数据。#include <sys/types.h> #include <unistd.h> #include <stdio.h>#includ...

2018-04-12 20:04:23 323

原创 管道和FIFO(有名管道) (一)

管道与FIFO管道:由于没有名字,只能在有共同祖先(有亲缘关系)的进程间使用。管道普遍用于shell中,也可以在程序中实现子进程向父进程回传信息。FIFO: 有名管道,可在无亲缘关系的进程间使用。以上都使用read/write函数访问。管道由pipe函数创建,提供一个单向数据流。#include <unistd.h>int pipe (int fd[2]);该函数返回两个文件描述符...

2018-04-10 20:57:05 3741

原创 poisx ipc

三种类型的IPC合称为 posix IPC:posix消息队列posix信号量posix共享内存区创建、打开IPC对象的oflag参数

2018-04-10 20:11:36 174

原创 进程间通信简介

进程间通信IPC(interprocess communication):描述的是运行在某个操作系统之上的不同进程间各种消息传递方式。POSIX:可移植操作系统接口(portable operation system interface),由电气与电子工程师学会IEEE开发的一系列标准。消息传递方式:管道(pipe):可在进程 和 shell 中使用,无名管道只能在共同祖先的进程间使用。管道普遍用...

2018-04-09 20:37:22 141

空空如也

空空如也

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

TA关注的人

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