
linux
dancer_0405
我有一个执着的心,只要认准了一个方向我会一直走下去,因为我知道:付出+汗水=成功。
展开
-
线程控制
1.线程的概念 main函数和信号处理函数是同⼀个进程地址空间中的多个控制流程,多线程也是如此,但是⽐信号处理函数更加灵活,信号处理函数的控制流程只是在信号递达时产⽣,在处理完信号之后就结束,⽽多线程的控制流程可以长期并存,操作系统会在各线程之间调度和切换,就像在多个进程之间调度和切换⼀样。 有些人把多线程和程序设计和多核系统联系起来,这种想法有些片面。即使程序在单核系统上,也可以做到多线程处原创 2017-06-28 16:23:47 · 316 阅读 · 0 评论 -
IPC----消息队列
1.消息队列的定义 消息队列提供了⼀种从⼀个进程向另⼀个进程发送⼀个数据块的⽅法。 每个数据块都被认为是有⼀个类型,接收者进程接收的数据块可以有不同的类型值。 消息队列接收发送消息的特点:新添加的消息总是在队尾,但接收消息的进程可以读取队列中间的数据。 此外, 消息队列也降低了读写进程间的耦合强度:若接收消息的进程没有接收到消息,发送消息的进程无须等待,可以继续发送消息,消息的读写双方只需关注各原创 2017-06-29 15:12:52 · 328 阅读 · 0 评论 -
IPC----共享内存
1.什么是共享内存:共享内存允许两个或多个进程访问给定的同一块存储区域。已知当一个进程被启动时,系统会为其创建一个 0~4G 的虚拟内存空间, 根据虚拟地址与物理地址之间的映射关系,进程可以通过操作虚拟地址,实现对物理页面的操作。 一般情况下,每个进程的虚拟地址空间会与不同的物理地址进行映射,但是当使用共享内存进行通信时,系统会将同一段物理内存映射给不同的进程。 两个进程的虚拟地址空间与共享内原创 2017-06-20 16:04:57 · 399 阅读 · 0 评论 -
IPC----信号量
1.为什么引入信号量 Linux 系统采用多道程序设计技术,允许多个进程同时在内核中运行,但同一个系统中的多个进程之间,可能因为进程合作或资源共享,产生制约关系。制约关系分为直接相互制约关系和间接相互制约关系: (1)直接相互制约关系。 利用管道机制实现进程间通信, 当管道为空时,读进程由于无法从管道中读取数据而进入阻塞;当管道存满时,写进程由于无法向管道中写入数据而进入阻塞, 类似于这种需要进原创 2017-06-27 16:06:13 · 853 阅读 · 0 评论 -
linux信号
1.我们首先要理解什么叫linux下的信号 比如:用户输入命令,在shell下启动一个前台进程;用户按下Ctrl+c等各种组合键产生一个硬件中断等等 2.在linux下进程分为前台进程和后台进程下面通过一段代码我们了解一下他们#include<stdio.h>#include<stdlib.h>int main(){ while(1){ ; }原创 2017-06-14 00:04:30 · 250 阅读 · 0 评论 -
线程安全和可重入函数
1.什么是线程安全? 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 2.如何避免 要避免线程的不安全,我们应该知道怎样造成线程的不安全(就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据)。 线程安全问题都是由全局变量及静原创 2017-06-14 23:39:01 · 403 阅读 · 0 评论 -
进程间通信---管道
1.什么是管道? 管道是一种最基本的进程通信机制,其实质是由内核管理的一个缓冲区,可以形象地认为管道的两端连接着两个需要进行通信的进程,其中一个进程进行信息输出,将数据写入管道; 另一个进程进行信息输入,从管道中读取信息。可以用下图表示 2.管道的分类 (1)匿名管道,我们平时进行操作时,曾经接触过“ls | wc -l”之类的组合。这种命名由管道符号“|”连接的两个或者多个原创 2017-06-15 11:20:15 · 567 阅读 · 0 评论