线程与进程的区别

Posted StubbornAnt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程与进程的区别相关的知识,希望对你有一定的参考价值。

面试中常见问题

  1. 线程与进程的区别

解答

  1. 参考Java并发编程实战,从并发历史的角度进行解读。
    最初计算机是单任务的,程序拥有计算机所有资源。
    为了能够实现多任务,可以让不同的程序在不同的进程中进行,操作系统为每个进程分配独立的资源:内存,文件句柄等。进程之间的通信依靠:套接字,信号处理器,共享内存,信号量及文件等粗粒度的方式进行。
    线程可以看做更细粒度的进程,一个进程可以启动多个线程,多个线程共享这个进程的资源:内存,文件句柄等,每个线程维护独立的程序计数器,栈,局部变量等。由于一个进程的多个线程共享进程的内存空间,因此多个线程能访问同一变量,并在同一堆上分配对象,这使得线程之间的通信更加简单,同时由于共享内存的存在也使得多线程需要同步机制来确保安全性。
    所以对于需要进行大量通信的场景适合多线程来提高效率,而只需要少量通信的情况适合使用多进程来提高安全性。

以上是关于线程与进程的区别的主要内容,如果未能解决你的问题,请参考以下文章

进程与线程的区别

进程与线程的区别

Java多线程和并发,进程与线程的区别

进程与线程的区别,进程间通信方式,线程间通信方式

进程与线程的区别

进程与线程的区别