程序、进程、线程、协程以及单线程、多线程基本概念

本文详细介绍了程序、进程、线程和协程的基本概念,以及它们之间的区别和联系。程序是计算机执行的指令集合,进程是程序在内存中的运行实例,拥有独立的内存空间。线程是进程的执行实体,是CPU调度的基本单位,可以共享进程资源。协程是一种轻量级线程,由用户控制调度,适用于I/O密集型任务。单线程和多线程各有优缺点,多线程可以提高CPU利用率,但需要处理资源竞争问题。
摘要由CSDN通过智能技术生成

目录

一、程序

二、进程

三、线程 

四、协程

1.定义

2.使用场景

五、单线程

1.定义

2.优缺点

六、多线程

1.定义

2.优缺点

七、程序和进程的区别和联系

八、进程和线程的区别和联系


一、程序

程序是计算机系统的必备元素,因为计算机系统由硬件、操作系统以及软件构成,软件指程序与其相关文档或其他从属物的集合,一般的我们视程序为软件的一个组成部分。本质上,程序是在计算机中执行的一系列指令,用于完成特定的目的,通常用某种程序设计语言编写。

二、进程

进程是一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。

三、线程 

线程进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。进程中的一个执行任务(控制单元),负责当前进程中程序的执行。

一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。

线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

四、协程

1.定义

协程是一种用户态的轻量级线程,协程的调度完全由用户控制。一个线程可以拥有多个协程,协程不是被操作系统内核所管理,而完全是由程序所控制。与其让操作系统调度,不如我自己来,这就是协程。

2.使用场景

一个线程内的多个协程是串行执行的,不能利用多核,所以,显然,协程不适合计算密集型的场景。协程适合I/O 阻塞型。

I/O本身就是阻塞型的(相较于CPU的时间世界而言)。就目前而言,无论I/O的速度多快,也比不上CPU的速度,所以一个I/O相关的程序,当其在进行I/O操作时候,CPU实际上是空闲的。

我们假设这样的场景

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值