进程与线程
进程至少包含三个组成要素:程序快、代码块以及进程控制块;
进程是系统中资源分配和保护的基本单位;
线程作为CPU的调度和分派的基本单位;
每个进程在创建的时候,至少要为该进程创建一个线程,即进程中至少有一个或多个线程;
同一进程的多个线程共享该进程的资源,但是线程并不拥有资源;
创建线程和撤销线程的开销远小于进程的创建与撤销;
在同一进程中的不同线程之间的独立性要比不同进程间的独立性低得多,因为为了放置进程之间的相互干扰和破坏,每个进程都拥有一个独立的地址空间和其他资源,除了共享全局变量以外,不允许其他进程的访问;
进程与进程之间是相互独立的,一个进程的终止不会影响其他进程,而线程与线程之间大部分是共享的,一个线程的终止异常会影响到其他线程,最后导致进程的终止;
线程创建出来的线程是平等的,而进程创建出来的进程就为该进程的子进程;
进程间的通信:
1.管道:管道可用于具有亲缘关系进程间的通信,允许一个进程和另外一个与它拥有共同祖先的进程之间进行通信;
2.命名管道:命名管道克服了管道没有名字的限制,除了具有管道所具有的功能之外,它还允许无亲缘关系进程间的通信;
3.信号:主要是用于通知接受进程有某种事情发生,除了用于进程间的通信之外,还可以进程发送信号给进程本身;
4.消息队列:消息队列是消息的链接表,有足够权限的进程可以在消息队列里添加新的消息,被赋予读权限的进程可以读取队列中的消息;
5.共享内存:使得多个进程可以访问同一个内存空间,是最快的可用IPC形式;
6.内存映射:内存映射允许多个进程间通信,每一个使用该机制的进程通过把一个共享的文件映射到自己的进程地址空间来实现它;
7.套接字:更为一般的进程间通信机制,可用于不同机器之间的进程间通信;
还没有评论,来说两句吧...