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

                                                  进程与线程的区别

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

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

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

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

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值