1.进程和线程的定义
进程:是执行中一段程序,一个程序被载入到内存中并准备执行,它就是一个进程,是系统进行资源分配和调度的一个基本单位。
线程:是进程的一个实体,是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,有时被称为轻量级进程。
2.进程和线程的区别
同一个进程可以包含多个线程,一个进程中至少包含一个线程,一个线程只能存在于一个进程中。即线程必须依托于进程。
同一进程下的各个线程并不是互相独立的,需要共享进程的资源。而各个进程基本上独立的,并不互相干扰。
线程是轻量级的进程,它的创建和销毁所需要的时间和资源消耗相比进程比进程小得多
在操作系统中,进程是拥有系统资源分配和调度的独立单元,它可以拥有自己的资源。一般而言,线程不能拥有自己的资源,但是它能够访问其隶属进程的资源,线程是CPU分派和调度的基本单位
3.进程间的通信方式
3.1 概述
之前说过,进程间是相互独立的,但是有时候为了共同完成一组任务需要各个进程相互合作,这就需要各个进程之间进行数据传输或者资源共享,因此需要进程间通信(IPC Interprocess Communication)
3.2 目的
数据传输:各个进程之间需要交换传输数据
共享数据:各个进程需要操作共享数据,一个进程对其修改别的进程应该立马看到
通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。
进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。
3.3 方式-七种
1.管道/匿名管道(pipe)
特点
半双工
亲缘关系
单独构成一种文件系统,并且只存在与内存中。
队列形式的读写(FIFO)
缺点(从特点上说!)
半双工
亲缘关系
存于内存,大小受限
无格式字节流,这就要求管道的读出方和写入方必须事先约定好数据的格式,比如多少字节算作一个消息(或命令、或记录)等
2.有名管道
哦,