进程 线程

基本概念

进程:一个程序在一个数据集合上的一次运行过程。所以一个程序在不同数据集合上运行,乃至一个程序在同样数据集合上的多次运行都是不同的进程。

线程:线程是进程中的一个实体,是被系统独立调度和执行的基本单位。


两者的区别

进程是程序的一次执行;线程可以理解为进程中执行的一段程序片段。

1.进程间是独立的,表现在内存空间、上下文环境上;线程运行在进程空间内。一般来说,进程无法突破进程边界存取其他进程内的存储空间;而同一进程内的线程共享同一内存空间

2.同一进程中的两端代码不能同时执行,除非引入线程。

3.线程属于进程,当进程退出时,该进程所产生的线程都会被强制退出并清除

4.线程占用的资源少于进程占用的资源

5.进程间可以通过IPC通信,但线程不可以。


IPC(Inter-Process Communication)

数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间

共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。

通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。

资源共享:多个进程之间共享同样的资源。为了作到这一点,需要内核提供锁和同步机制。

进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。

你可能感兴趣的:(进程 线程)