打赏

牛客网Java刷题知识点之进程和线程的区别

 

 

  不多说,直接上干货!

 

https://www.nowcoder.com/ta/review-java/review?tpId=31&tqId=21079&query=&asc=true&order=&page=11

 

 

 

 

 

 

 

 

线程与进程的区别归纳:

  a.地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。

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

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

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

 

 

  进程是运行中的程序,线程是进程的内部的一个执行序列。
  进程是资源分配的单元,线程是执行行单元。
  进程间切换代价大,线程间切换代价小。
  进程拥有资源多,线程拥有资源少。
  多个线程共享进程的资源。
 
 
  进程是资源分配单位,线程是cpu调度单位;跟cpu真正打交道的是线程;
  进程是运行时的程序,而线程是进程的执行序列;
  进程的上下文切换比线程慢得多;
  进程中包括多个线程,线程间共享进程资源
 
 
 


  1 、进程是执行着的程序,线程是进程内的一个执行序列。一个进程可以拥有多个线程。
  2 、进程是资源分配的最小单元,线程是执行调度的最小单元。进程拥有独立的资源,多个线程间共享这些资源。
  3、 进程间通信代价较大,线程间通信代价小。
 
 
 

 

 

  简单帮助记忆

  开个QQ,开了一个进程;开了迅雷,开了一个进程。

  在QQ的这个进程里,传输文字开一个线程、传输语音开了一个线程、弹出对话框又开了一个线程。

  所以运行某个软件,相当于开了一个进程。在这个软件运行的过程里(在这个进程里),多个工作支撑的完成QQ
的运行,那么这“多个工作”分别有一个线程。
  
  所以一个进程管着多个线程。
 
  进程是爹妈,管着众多的线程儿子。
 
 

 

posted @ 2017-08-23 10:19  大数据和AI躺过的坑  阅读(415)  评论(0编辑  收藏  举报