进程和线程的区别是什么?

两个概念
线程 : 就是进程中的一个执行单元 也可以叫执行路径
进程 : 正在运行的程序.当一个程序进入到内存中的时候 就有了一个进程
进程中至少有一个线程,可以有多个线程,我们把有个线程的程序叫多线程程序
进程和线程都是一个时间段的描述,是CPU工作时间段的描述,不过是颗粒大小不同。
进程>线程
一个程序至少有一个进程,而一个进程至少有一个线程.
面试题:进程和线程的区别
进程和线程的主要差别在于它们是不同的操作系统资源管理方式,进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径.线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些.但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程.

  1. 简而言之,一个程序至少有一个进程,一个进程至少有一个线程.

  2. 线程的划分尺度小于进程,使得多线程程序的并发性高。

  3. 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

  4. 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

  5. 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。
    在Windows中,进行CPU分配是以线程为单位的,一个进程可能由多个线程组成
    总线程数<= CPU数量:并行运行
    总线程数> CPU数量:并发运行
    并发:一个处理器同时处理多个任务。
    并行:多个处理器或者是多核的处理器同时处理多个不同的任务.
    前者是逻辑上的同时发生(simultaneous),而后者是物理上的同时发生.
    并发性(concurrency),又称共行性,是指能处理多个同时性活动的能力,并发事件之间不一定要同一时刻发生。
    并行(parallelism)是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行。
    来个比喻:并发和并行的区别就是一个人同时吃三个馒头和三个人同时吃三个馒头。
    CPU: 在某一时刻上只能执行一个路径,但是在我们看来 CPU可以执行多个线程
    因为 CPU在进行高速的切换.

    两种调度方式
    分时调用
    抢占式调用 java

    主线程 JVM开启的 每个线程 都有自己的栈空间 相当于执行路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值