自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 IPC----消息队列

1.消息队列的定义 消息队列提供了⼀种从⼀个进程向另⼀个进程发送⼀个数据块的⽅法。 每个数据块都被认为是有⼀个类型,接收者进程接收的数据块可以有不同的类型值。 消息队列接收发送消息的特点:新添加的消息总是在队尾,但接收消息的进程可以读取队列中间的数据。 此外, 消息队列也降低了读写进程间的耦合强度:若接收消息的进程没有接收到消息,发送消息的进程无须等待,可以继续发送消息,消息的读写双方只需关注各

2017-06-29 15:12:52 301

原创 线程控制

1.线程的概念 main函数和信号处理函数是同⼀个进程地址空间中的多个控制流程,多线程也是如此,但是⽐信号处理函数更加灵活,信号处理函数的控制流程只是在信号递达时产⽣,在处理完信号之后就结束,⽽多线程的控制流程可以长期并存,操作系统会在各线程之间调度和切换,就像在多个进程之间调度和切换⼀样。 有些人把多线程和程序设计和多核系统联系起来,这种想法有些片面。即使程序在单核系统上,也可以做到多线程处

2017-06-28 16:23:47 279

原创 IPC----信号量

1.为什么引入信号量 Linux 系统采用多道程序设计技术,允许多个进程同时在内核中运行,但同一个系统中的多个进程之间,可能因为进程合作或资源共享,产生制约关系。制约关系分为直接相互制约关系和间接相互制约关系: (1)直接相互制约关系。 利用管道机制实现进程间通信, 当管道为空时,读进程由于无法从管道中读取数据而进入阻塞;当管道存满时,写进程由于无法向管道中写入数据而进入阻塞, 类似于这种需要进

2017-06-27 16:06:13 798

原创 单链表常见面试题

//LinkList.h#ifndef _LINKLIST_H__#define _LINKLIST_H__#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>typedef int DataType;typedef struct N

2017-06-26 16:33:15 268

原创 IPC----共享内存

1.什么是共享内存:共享内存允许两个或多个进程访问给定的同一块存储区域。已知当一个进程被启动时,系统会为其创建一个 0~4G 的虚拟内存空间, 根据虚拟地址与物理地址之间的映射关系,进程可以通过操作虚拟地址,实现对物理页面的操作。 一般情况下,每个进程的虚拟地址空间会与不同的物理地址进行映射,但是当使用共享内存进行通信时,系统会将同一段物理内存映射给不同的进程。 两个进程的虚拟地址空间与共享内

2017-06-20 16:04:57 364

原创 网络基础---TCP(端口号,TCP段格式,常见定时器,握手与挥手)

1.端口号 (1).基本概念:端口包括物理端口和逻辑端口。物理端口是用于连接物理设备之间的接口,逻辑端口是逻辑上用于区分服务的端口。TCP/IP协议中的端口就是逻辑端口,通过不同的逻辑端口来区分不同的服务。一个IP地址的端口通过16bit进行编号,最多可以有65536个端口。端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535。 (2).如何对端口号进行分类服务器端使用

2017-06-19 16:27:55 866

原创 网络基础---NAT技术和代理服务器

1.什么叫NAT技术? NAT(Network Address Translation,网络地址转换)当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,

2017-06-16 15:35:33 694

原创 网络基础---CRC校验

1.什么是CRC校验? CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。 循环冗余校验码(CRC)的基本原理是:在

2017-06-16 13:22:56 576 1

原创 进程间通信---管道

1.什么是管道? 管道是一种最基本的进程通信机制,其实质是由内核管理的一个缓冲区,可以形象地认为管道的两端连接着两个需要进行通信的进程,其中一个进程进行信息输出,将数据写入管道; 另一个进程进行信息输入,从管道中读取信息。可以用下图表示 2.管道的分类 (1)匿名管道,我们平时进行操作时,曾经接触过“ls | wc -l”之类的组合。这种命名由管道符号“|”连接的两个或者多个

2017-06-15 11:20:15 531

原创 线程安全和可重入函数

1.什么是线程安全? 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 2.如何避免 要避免线程的不安全,我们应该知道怎样造成线程的不安全(就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据)。 线程安全问题都是由全局变量及静

2017-06-14 23:39:01 372

原创 linux信号

1.我们首先要理解什么叫linux下的信号 比如:用户输入命令,在shell下启动一个前台进程;用户按下Ctrl+c等各种组合键产生一个硬件中断等等 2.在linux下进程分为前台进程和后台进程下面通过一段代码我们了解一下他们#include<stdio.h>#include<stdlib.h>int main(){ while(1){ ; }

2017-06-14 00:04:30 224

空空如也

空空如也

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

TA关注的人

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