- 博客(10)
- 收藏
- 关注
原创 浅谈HTTP
HTTP(Hyper-Text Transfer Protocol,超文本传输协议),完成从客户端到服务器的一系列运作流程。是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP的发展历程:HTTP 的最早版本诞生在 1990 年,这个最早版本和现在比起来极其简单,没有 HTTP 头,没有状态码,甚至版本号也没有。并没有作为正式的标准被建立...
2018-12-06 17:29:11
196
原创 操作线程的函数
线程有一套完整的与其有关的函数库调用,在头文件中必须有#include<pthread.h>,并且在编译时用选项-lpthread来链接线程库。线程创建函数int pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);调用成功时返回...
2018-12-04 18:39:28
336
原创 Linux共享内存
共享内存是所有IPC手段中最快的一种,共享内存一旦映射到进程的地址空间,进程之间数据的传递就不需要涉及内核了。前面的管道,消息队列,任意两个进程要交换信息,都必须通过内核,内核在其中发挥了中转站的作用:发送信息的一方,通过系统调用(write或msgsnd)将信息从用户层拷贝到内核层,由内核层暂存这部分信息。 提取信息的一方,通过系统调用(read或msgrcv)将信息从内核层提取到应用...
2018-11-03 16:06:45
365
原创 消息队列(message queue)
消息队列提供了一种在两个不相关的进程之间传递数据的相当简单且有效的办法。消息队列和共享内存优于管道的原因:消息队列机制中,双方通过消息来通信,无需花费精力从字节流中解析出完整的消息。每条消息都有type字段,消息的读取进程可以通过type字段来选择自己感兴趣的消息,也可以根据type字段按消息的优先级进行读取,而不一定要按照消息的生成顺序来依次读取。内核为每一个消息队列分配了一个m...
2018-11-03 15:57:58
1082
原创 Linux下进程与多线程之间的共享资源
在Linux 下,程序或可执行文件是一个静态的实体,它只是一组指令的集合,没有执行的含义。进程是一个动态的实体,有自己的生命周期。线程是操作系统进城调度器可以执行的最小执行单元。同一个进程中的各个线程都有自己独立的线程ID,用来标识线程。如下代码所示:#include<stdio.h>#include<stdlib.h>#include<unistd.h...
2018-10-28 15:49:38
1260
原创 进程间通信——管道(无名管道)
Linux下进程间通信的手段基本是从Unix平台继承而来。管道是第一个广泛应用的进程间通信手段。日常在终端执行shell命令时,经常会将上一个命令的输出,作为下一个命令的输入,有多个命令配合完成一件事情,会大量用到管道。管道是一种文件,可以调用read,write,close等操作文件的接口来操作管道。它属于一种特殊的文件系统:Pipe File System。管道的本质是内核维护了一块缓冲区与...
2018-10-13 17:43:44
445
原创 Linux信号
信号信号是一种软件中断,用来处理异步事件。信号的本质是一种进程间的通信。进程之间约定好:如果发生了某件事情T(trigger),就向目标进程(destination process)发送某特定信号X,而目标进程看到X,就意识到T事件发生了,目标进程就会执行相应的动作A(action)。现在以配置文件改变为例,来描述整个过程。一般而言,程序会采用SIGHUP信号来通知目标进程重新加载配置文件。...
2018-09-25 19:46:32
234
原创 僵尸进程及其处理
进程:一个可并发执行的程序在一个数据集上的一次运行,即程序的一次运行过程。 进程与程序的关系:程序是进程的一个组成部分,是进程的执行文本;进程是程序的执行过程。 僵尸进程:进程主体结束,但是进程的PCB依旧存在,在多进程编程中,父进程未结束,但是子进程结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。 进程有五种结束方式: 1.调用exit () 2.调...
2018-09-11 23:31:13
1267
转载 创建进程fork()函数基本用法
摘要:本文详解介绍fork()函数的基本使用,以及父子进程之间的关系.子进程对变量的改变不会影响到父进程、子进程对父进程文件流缓冲区的处理和子进程对父进程打开的文件描述符的处理.创建进程1.fork()函数函数定义: #include <unistd.h...
2018-08-04 17:19:55
1096
原创 C++标准输入输出
在C++中,I/O数据是一些从源设备到目标设备的字节序列,称为字节流。流分为输入流和输出流两类。输入流(input stream)是指从输入设备(通常为键盘)流向内存的字节序列。输出流(output stream)是指从内存流向输出设备(通常是显示器)的字节序列。 C++程序为了从键盘中输入数据和将数据输出到显示器上,必须包含头文件iostream.h,包括了输入流istream和输出流ostr...
2018-08-02 21:09:12
2660
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人