消息队列

 消息队列提供了一个从一个进程向另一个进程发送数据块的方法 每个数据库都被认为是一个类型,接收者进程接收的数据块可以有不同的类型值 消息队列也有管道一样的不足,就是每个消息的最大长度是有上限的,每个消息队列的总的字节数也是有上限的,系统上消息队列的总数也有一个上限 消息队列的特点: 消息队列...

2018-08-16 20:43:46

阅读数 37

评论数 0

进程间通信——管道

进程间通信 进程间通信的目的: 数据传输:一个进程需要将它的数据发生给另一个进程 资源共享:多个进程之间共享同样的资源 通知事件:一个进程需要向另一个或一组进程发生消息,通知他发生了某种事件(如进程终止时要通知父进程) 进程控制:有些进程行为完全控制另一个进程的执行,此时控制进程希望能够...

2018-08-16 18:23:12

阅读数 23

评论数 0

浅析软,硬链接

硬链接: 通过文件系统,我们知道,真正找到磁盘上文件的并不是文件名,而是inode。但是我们的Linux可以使多个文件名对应于同一个inode 创建一个硬链接:ln 源文件名 链接名 我们发现abc和bcd指向了同一个inode,inode中记录了文件的所有信息,改动其中一个使,另一个也...

2018-08-15 11:53:12

阅读数 41

评论数 0

浅析文件系统

文件系统: Linux提供了层次结构的目录和文件,文件系统将磁盘划分为每1024(或512)个字节为一组的块。编号从0到整个磁盘空间的最大块数 当我们使用ls -来查看时,我们发现,除了看到文件名,还能看到文件元数据 每行包含7列:模式,硬链接数,文件所有者,组,大小,最后修改事件,...

2018-08-15 11:09:06

阅读数 63

评论数 0

文件相关系统调用,文件描述符

  1.open函数: 函数原型: #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> ...

2018-08-15 10:19:06

阅读数 41

评论数 0

线程的同步与互斥

mutex(互斥量) 大部分情况,线程使用的数据都是局部变量,变量的地址空间在线程栈空间内。这种情况,变量对数单个线程,其他线程无法获得这种变量 但有时候,很多变量都需要在线程间共享,这样的变量称为共享变量,可以通过数据的共享,完成线程之间的交互 多线程并发的操作共享变量,会带来一些问题,因...

2018-08-13 17:37:14

阅读数 24

评论数 0

线程id与进程id

内核标识的线程ID-LWP,在系统级别有效 在Linux中,线程被称为轻量级进程(light weighted process),每一个用户态的线程,在内核中都对于一个调度实体,也称为进程描述符(task_struct结构体) 没有线程之前,一个进程对于内核里的一个进程描述符,对于一个进程ID...

2018-08-13 15:10:58

阅读数 468

评论数 0

线程控制

线程控制: 线程的控制与进程控制不同,由于内核中根本没有写出的概念,因此也就不存在线程相关的“系统调用”,于是大佬在用户层封装了一个线程库,我们就可以在用户层来完成线程的创建,销毁以及其他控制 posix线程库: 与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都以“pthread_...

2018-08-12 20:32:57

阅读数 21

评论数 0

线程初识

线程初识:  什么是线程? 线程是操作系统能够进行运算调度的最小单位 线程包含在进程之中,是进程中的实际运行单位,一切进程至少都有一个执行线程 线程是指进程中的一个单一顺序的控制流 一个进程中可以并发多个线程,每条线程并行执行不同的任务 一个程序中的一个执行路线就叫做线程。线程就是一个在...

2018-08-12 18:37:05

阅读数 23

评论数 0

进程终止,进程等待

进程终止: 进程退出的场景: 代码运行完毕,结果正常 代码运行完毕,结果不正常 代码异常终止 进程常见的退出方式: 1.正常终止: 从main()函数返回 调用exit _exit 正常终止,可以通过echo $?来查看进程的退出码 2.异常退出: ctrl+c,信号终止   ...

2018-08-12 10:30:49

阅读数 42

评论数 0

进程创建——fork,vfork

fork()函数: 在Linux中fork函数是一个非常重要的函数,它从已存在的进程中创建一个新的进程,而新进程位子进程,原进程位父进程 函数原型: #include<unistd.h> pid_t fork(viod); 返回值:成功子进程...

2018-08-11 11:27:25

阅读数 31

评论数 0

程序的地址空间

研究背景:32位平台 计算机物理内存的大小是固定的,就是计算机主板内存槽上的实际物理内存,cpu可以直接进行寻址,物理内存的容量是固定的,但是寻址的空间取决于cpu地址线的数量。在32位系统上,线性地址空间可达4G(2^32);这4G一般是按照3:1的比例进行分配,用户进程享有3G的空间,而内核...

2018-08-10 20:18:08

阅读数 898

评论数 0

僵尸进程,孤儿进程

Z(zombie)——僵尸进程 僵尸状态是一个比较特殊的状态,当进程退出并且父进程没有读取到子进程退出的返回代码时,就会产生僵尸进程 僵尸进程会以终止状态保持在进程表中,并且一致在等待父进程读取退出状态代码 所以,子进程退出,但是父进程没有读取子进程状态,子进程加入Z状态 系统调用exit...

2018-08-10 12:09:37

阅读数 38

评论数 0

进程初始(二)——进程优先级,环境变量

程序优先级: 基本概念: 进程在被cpu分配到资源优化才能运行,但是资源是有限的,cpu分配资源的先后顺序,就是进程的优先权 优先权(优先执行的权利)和优先级值不一样,优先权高的进程有优先执行的权力,配置进程优先权对多任务环境的Linux很有用,可以改善系统性能 还可以把进程运行到指定的C...

2018-08-10 10:20:10

阅读数 38

评论数 0

初识进程(一)——操作系统,进程管理,进程状态

一、冯诺依曼体系结构 目前我们认识的计算机都是由一个个硬件组成 输入单元:键盘,鼠标,扫描仪等 输出单元:显示器,打印机 中央处理器(cpu):含有运算器和控制器 关于冯诺依曼体系,必须强调几点: 存储器是指内存 不考虑缓存的情况,cpu只能对内存进行读写,不能访问外设 外设要输...

2018-08-09 17:14:59

阅读数 204

评论数 0

Mysql——内外连接,事物,索引

表的内外连接: 表的连接分为内连和外连 内连接: 内连接实际上就是利用where语句对俩个表形成的笛卡儿积进行筛选,我们前面学的所有连接都是内链接 语法:select 字段名 from 表1 inner join 表2 on 连接条件 and 其他条件 例:显示SMITH的名字和部门名称...

2018-08-09 12:45:07

阅读数 74

评论数 0

MySQL——表的约束,数据类型,增删查改

数据类型 数值类型: tinyint:1字节,-128~127,0~255 smallint:2字节,-32768~32767,0~65535 mediumint:3字节 ,-8388608~8388607 ,0~16777215 int :4字节,-2147483648~2147483...

2018-08-09 10:52:23

阅读数 45

评论数 0

MySQL对表和库的一些基本操作

启动mysql:service mysqld start 关闭mysql:service mysqld stop 连接到mysql:mysql -u root -p 退出连接:exit 库的操作 创建数据库: 创建数据库company1:create database company1...

2018-08-09 10:16:12

阅读数 48

评论数 0

模板的偏特化,全特化

c++中的模板分为类模板和函数模板 模板的特化分为俩种:全特化和偏特化 全特化: 举一个简单的例子 template<class T> class AA { public: AA() :_a(0) {} ~AA() { cout...

2018-08-08 18:12:33

阅读数 79

评论数 0

模板参数,模板分离编译

模板的形参: 1.类型形参: template<class T> void h(T a) {//……}  类型形参是指:class T/ typename T中的T,类型形参的名字由用户自己定义,模板的形参(T)表示一个未知的类型。 模板...

2018-08-08 17:17:16

阅读数 50

评论数 0

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