进程与线程的区别------java编程

                                                  进程与线程的区别

     进程与线程之间的联系,会因平台的差异(OS  硬件),有极大的不同。即使在相同的平台下,进程与线程之间的联系也会因为JAVA 虚拟机的实现方式有很大的不同。不过一般而言,我们可以说,一个进程里可建立多条线程。

  具体的说,可以有以下两点特别重要的:

  1.线程之间的内存是共享的。

  这是他们最大的差异。通常每个进程所拥有的内存空间是相互独立的。进程不能擅自读取,改写其他进程的内存空间。正因为这一点,进程就不必担心被其他进程破坏的危险。

  而线程则是内存共享的,所以我们通常会让一个线程在内存上写入数据,而其他的线程来读取。

  也因为这一点,使得线程之间的沟通可以使用很自然,简单的方式做到。而因为一个实例可以由多个线程访问,所以需要正确的进行共享互斥。

  2.线程之间的context-switch较容易。

  要切换执行中的进程,进程必须将自己现有的执行状态存储下来。,并将下一个要开始执行的进程以前所保留的context数据读回来。而这个信息切换的操作需要花费一定的时间。

  切换执行中的线程,线程与进程一样,需要进行context-switch操作。然而线程所管理的context的信息比进程要来的少,一般而言线程之间的switch比起进程要快很多。

  所以要进行多项紧密相关的工作,线程通常比进程来的实用。

发布了43 篇原创文章 · 获赞 10 · 访问量 17万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章