美文网首页
进程与线程,同步与异步,并发与并行的区别

进程与线程,同步与异步,并发与并行的区别

作者: Queen_BJ | 来源:发表于2020-03-30 16:03 被阅读0次

    一、进程与线程

    进程
    • 进程有独立的地址空间,每个进程之间是独立的,一个进程崩溃后,不会影响其他进程。
    • 进程是一个具有一定独立功能的程序,也是操作系统分配资源的基本单元
    • 进程是指在系统中正在运行的一个应用程序,就是一段程序的执行过程,我们可以理解为手机上的一个app
    线程
    • 线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等同于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。
    • 线程是CPU独立运行和独立调度的基本单位(可以理解为一个进程中执行的代码片段)
    进程和线程的关系
    • 线程是进程的执行单元,进程的所有任务都在线程中执行
    • 线程是 CPU 分配资源和调度的最小单位
    • 一个程序可以对应多个进程(多进程),一个进程中可有多个线程,但至少要有一条线程
    • 同一个进程内的线程共享进程资源

    二、同步和异步

    • 同步(Sync):同步就是顺序执行,执行完一个任务执行下一个任务,需要等待、协调运行。不具备开启新线程的能力
    • 异步(Async):异步就是彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作。(同时做一个两件或是多件事情(边听歌边看报)边下载边播放)任务间来回切换。线程就是实现异步的一个方式。具备开启新线程的能力

    三、并行和并发

    • 并发(Concurrence):指两个或两个以上的事件在同一时间间隔内发生(并发事件之间不一定要同一时刻发生)(同时运行多个任务)
    • 并行(parallelism):指两个或两个以上事件在同一时刻发生。
      在多道程序环境下,并行性使多个程序同一时刻可在不同CPU上同时执行。
      区别:一个处理器同时处理多个任务和多个处理器或者是多核的处理器同时处理多个不同的任务。
      前者是逻辑上的同时发生(simultaneous),而后者是物理上的同时发生。
      两者的联系:并行的事件或活动一定是并发的,但反之并发的事件或活动未必是并行的。并行性是并发性的特例,而并发性是并行性的扩展。

    相关文章

      网友评论

          本文标题:进程与线程,同步与异步,并发与并行的区别

          本文链接:https://www.haomeiwen.com/subject/pjnmyhtx.html