进程与线程的区别

来源:互联网 发布:c语言求圆柱表面积 编辑:程序博客网 时间:2024/06/13 13:55

进程与线程的区别:

进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别简而言之就是:一个程序至少有一个进程,一个进程至少有一个线程

具体的区别如下:

1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。

2)通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。

3)调度和切换:线程上下文切换比进程上下文切换要快得多。

4)在多线程OS中,进程不是一个可执行的实体。

5) 通俗一点说,进程就是程序的一次执行,而线程可以理解为进程中的执行的一段程序片段。

6)  用一点文词说就是,每个进程都有独立的代码和数据空间(进程上下文);而线程可以看成是轻量级的进程。一般来讲(不使用特殊技术),同一进程所产生的线程共享同一块内存空间。

7)  同一进程中的两段代码是不可能同时执行的,除非引入线程。

  线程是属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。
   线程占用的资源要少于进程所占用的资源。
   进程和线程都可以有优先级。
  在线程系统中进程也是一个线程。可以将进程理解为一个程序的第一个线程。

  多进程-----在操作系统中,能同时运行多个任务(程序)。

  多线程-----在同一应用程序中,有多个顺序流同时执行。