python基础23 -----进程和线程

一、进程

  1、什么是进程?

   1.1 进程就是一个程序在一个数据集上的一次动态执行过程。进程一般由程序、数据集、进程控制块三部分组成。

   1.2 程序是指进程需要完成那些功能以及如何完成。

   1.3 数据集是指程序在执行过程中所需要使用的资源。

   1.4进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用他来控制和管理进程,他是系统感知进程存在的唯

     一标识

二、线程

  1、为什么会有线程?

    1.1线程是为了降低上下文切换的消耗,提高系统的并发性,突破一个进程只能干一件事的局限。

  2、什么是线程?

    2.1线程是轻量级进程,他是一个基本的cpu执行单元,也是程序执行过程中的最小单元。由线程ID,程序计数器,寄存器集合,

      和堆栈共同组成。

·  3、线程的好处?

    3.1 减少了程序并发执行的消耗,提高了操作系统的并发性能,但是线程没有自己的系统资源,是由进程分配的。

三、进程和线程的关系

  1、一个线程只能属于一个进程,而一个进程可以有多个线程,但是最少必须有一个主线程。

  2、系统资源分配给进程,进程下的所有线程共享分配给该进程的所有资源。

  3、CPU分配给线程,即真正在cpu上运行的是线程。

四、并行和并发

  1、什么是并行处理?

    并行处理指的是计算机cpu同事处理两个或两个以上的线程或者说是程序。

  2、什么是并发处理?

    并发处理指的是计算机cpu在一段时间内能切换处理多少个进程。

  3、二者之间的关系?

    并行是并发的子集,并发是并行的父集。

  4、补充知识点

    串行:串行指的是cpu按顺序执行程序。

五、同步和异步

  1、什么是同步?

    同步就是指一个进程在执行某个请求时,若该请求需要一段时间才能返回信息,那么这个进程就会一直等待下去直到

      接收到该请求的返回信息才会执行下面的操作。

  2、什么是异步?

    异步是指一个进程在执行某个请求后,若该请求需要一段时间才能返回信息,但是该进程不会等待该请求,而是直接执行下面的操作

      当该请求有返回信息时操作系统会通知进程进行处理,这种异步处理的机制大大提高了程序的执行效率。

六、密集型任务

  1、IO密集型任务

    程序存在大量IO操作,比如说sleep,input,accert,等等。

  2、计算密集型任务

    程序存在大量的计算操作,除IO操作外的程序都是计算操作。

  3、在多线程处理程序的情况下,IO密集型任务比计算密集型任务更有优势。

  4、补充:对应python而言,无法利用多核,因为他的进程有一个lock锁的机制,

    

  

    

      

      

时间: 2024-10-08 11:18:22

python基础23 -----进程和线程的相关文章

Python 中的进程、线程、协程、同步、异步、回调

进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO过程在什么时间发生? 在刚刚结束的 PyCon2014 上海站,来自七牛云存储的 Python 高级工程师许智翔带来了关于 Python 的分享<Python中的进程.线程.协程.同步.异步.回调>. 一.上下文切换技术 简述 在进一步之前,让我们先回顾一下各种上下文切换技术. 不过首先说明一点术语.当我们说"上下文"的时候,指的是程序在执行中的一个状态.通常我们会用调用栈来表示这个状

python中的进程、线程(threading、multiprocessing、Queue、subprocess)

Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就比别人NB. 我们先了解一下什么是进程和线程. 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配.任务的调度. 程序是运行在系统上的具有某种功能的软件,比如说浏览器,音乐播放器等. 每次执行程序的时候,都会完成一定的功能,比如说浏览器帮我们打开网页,为了保证其独立性,就需要一个专

Java多线程基础:进程和线程之由来

在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程.当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够融会贯通使用的,需要在实践中不断积累.由于并发肯定涉及到多线程,因此在进入并发编程主题之前,我们先来了解一下进程和线程的由来,这对后面对并发编程的理解将会有很大的帮助. 下面是本文的目录大纲: 一.操作系统中为什么会出现进程? 二.为什么会出现线程? 三.多线程并发 若有不正之处,请多多谅解并欢迎指正. 请尊重作者劳动成果,转载请标明原文地址:

C#网络编程基础之进程和线程详解

在C#的网络编程中,进程和线程是必备的基础知识,同时也是一个重点,所以我们要好好的掌握一下. 一:概念 首先我们要知道什么是"进程",什么是"线程",好,查一下baike. 进程:是一个具有一定独立功能的程序关于某个数据集合的一次活动.它是操作系统动态执行的基本单元, 在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元. 线程:是"进程"中某个单一顺序的控制流. 关于这两个概念,大家稍微有个印象就行了,防止以后被面试官问到. 二:进程

【廖雪峰老师python教程】——进程与线程

多进程 操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务3,执行0.01秒--这样反复执行下去.表面上看,每个任务都是交替执行的,但是,由于CPU的执行速度实在是太快了,我们感觉就像所有任务都在同时执行一样. 对于操作系统来说,一个任务就是一个进程(Process) 在一个进程内部,要同时干多件事,就需要同时运行多个"子任务",我们把进程内的这些"子任务"称为线程(Thread). multiprocessing

为你揭秘 Python 中的进程、线程、协程、同步、异步、回调

进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO 过程在什么时间发生? 一.我们来介绍一下上下文切换技术 关于一些术语.当我们说"上下文"的时候,指的是程序在执行中的一个状态.通常我们会调用栈来表示这个状态.栈--记载了每个调用层级执行了哪里和执行时的环境情况等所有有关的信息. 当我们说"上下文切换"的时候,表达的是一种从一个上下文切换到另一个上下文执行的技术.而"调度"指的是决定哪个上下文可以获得接下来

Python自学笔记-进程,线程(Mr serven)

对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程. 有些进程还不止同时干一件事,比如Word,它可以同时进行打字.拼写检查.打印等事情.在一个进程内部,要同时干多件事,就需要同时运行多个"子任务",我们把进程内的这些"子任务"称为线程(Thread). 同步是指:发送方发出数据后,等接收方发回响应以后

python学习之-- 进程 和 线程

python 进程/线程详解 进程定义:以一个整体的形式暴露给操作系统管理,它里面包含对各种资源的调用,内存的管理,网络接口的调用等等,对各种资源管理的集合,就可以叫做一个进程. 线程定义:线程是操作系统能够进行运算调度的最小单位(是一串指令的集合).它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 另说明:进程是不能直接操作CPU执行的,每个进程的执行都是默认创建一个主线程来操作CPU进行执行指令集合

Python之路-python(paramiko,进程和线程的区别,GIL全局解释器锁,线程,进程)

一.paramiko 二.进程.与线程区别 三.python GIL全局解释器锁 四.线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queue队列 一.paramiko 用于远程连接并执行简单的命令 使用用户名密码连接: 1 import paramiko 2 3 # 创建SSH对象 4 ssh = paramiko.SSHClient() 5 # 允许连接不在know_hosts文件中的主机 6 ssh.set