美文网首页多线程
01_认识进程和线程

01_认识进程和线程

作者: 点九先生 | 来源:发表于2021-04-26 15:13 被阅读0次

进程让操作系统的并发性成为了可能,而线程让进程的内部并发成为了可能。
进程是操作系统进行资源分配的基本单位,而线程是操作系统进行调度的基本单位。

1.1、为什么不用多进程实现并发?

多进程的方式也可以实现并发,但进程是相互独立的运行环境,进程间的通信比较复杂,线程是进程内的一个独立运行的任务,线程间使用共享资源进行通信相对容易。进程是重量级的,多进程并发开销较大,而线程是轻量级的,多线程并发开销更小。

1.2、为什么要用多线程实现并发?

为了解决负载均衡问题,充分利用CPU资源.

为了提高CPU的使用率,采用多线程的方式去同时完成几件事情而不互相干扰.

为了处理大量的IO操作时或处理的情况需要花费大量的时间等等,

比如:读写文件,视频图像的采集,处理,显示,保存等

1.3、进程和线程的区别?

进程是一个独立的运行环境,进程单独占有一定的内存地址空间,而线程是在进程中执行的一个任务。

他们两个本质的区别是是否单独占有内存地址空间及其它系统资源(比如I/O)

可靠性:一个线程的崩溃可能会影响整个程序的崩溃,稳定性低;一个进程出现问题不影响其他进程,稳定性高。

开销大小:线程只需要寄存器和栈信息,开销小;进程的创建和销毁不仅需要保存寄存器和栈信息,还需要资源的调度回收以及页面调度。

内存隔离:线程共享数据来自所属进程的所占有的内存地址和系统资源,共享数据简单,同步数据复杂。进程存在内存隔离,数据是分开的,数据共享复杂数据同步简单。

1.4、线程是不是越多越好?

CPU通过为每个线程分配CPU时间片来实现多线程机制。CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换。上下文切换通常是计算密集型的,意味着此操作会消耗大量的 CPU 时间,故线程也不是越多越好

相关文章

  • 01_认识进程和线程

    进程让操作系统的并发性成为了可能,而线程让进程的内部并发成为了可能。进程是操作系统进行资源分配的基本单位,而线程是...

  • 认识进程和线程

    1.创建进程 Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进...

  • 认识进程和线程

    1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位...

  • 线程和进程概念

    线程和进程 进程 线程 线程和进程的区别

  • 17_多线程

    =================线程和进程 =============进程 =============线程 ==...

  • OC-底层原理 23:多线程原理

    本文的目的在于了解进程、线程、多线程、线程池等的基本概念及原理 线程 和 进程 线程和进程的定义 线程 线程时进程...

  • iOS 多线程原理

    本文的目的在于了解进程、线程、多线程、线程池等的基本概念及原理 线程 和 进程 线程和进程的定义 线程 线程时进程...

  • 线程

    线程和进程 进程 线程 线程和进程的区别 线程的好处和坏处 创建线程的方式一 线程中常用的方法 代码实例 创建线程...

  • iOS底层原理24:多线程原理

    本文的目的在于了解进程、线程、多线程、线程池等的基本概念及原理 线程和进程 线程和进程的定义 线程 线程是进程的基...

  • 多线程

    线程和进程的概念: 进程:正在运行的应用就是一个进程线程:进程中执行每个任务的是线程 进程和线程的关系: 一个进程...

网友评论

    本文标题:01_认识进程和线程

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