python之路第九编_线程和进程

进程、线程

  进程:程序的一次执行

  线程:CPU的基本调度单元

每一个进程提供需要执行程序的资源。一个进程有一个虚拟的地址空间,执行代码,开放的句柄系统对象,一个安全的情景感知,一个唯一的进程标识符,环境变量,一个优先级类,最小和最大的工作尺寸,至少有一个线程的执行,每一个进程以一个线程开始,叫做主线程,主线程可以创建多个子线程

进程是CPU一堆指令的集合,在单核CPU中,cpu一次只能执行一次任务。例如在一个工厂中,同一时间一个车间只能有一个车间可以工作,其他车间只能等待。

线程:

线程是CPU基本的调度单元。

举个例子:假如你正在读一本书,你有事情需要暂停,过一段时间你回来后想继续读书(从你暂停的点继续读书),如果想记下页码、行号、字母号。因此你读书需要记住这三个数字。

加入你有一个卧室,你使用以上技术,加入在休息后重新阅读一本书,你可以快速恢复在任何地方。

同样线程也是一样的道理,一个CPU会给人一种幻觉在相同时间cpu同时做多个计算。它花费一点时间在每一个计算上。

无论你启多少个线程,你有多少个cpu, Python在执行的时候会淡定的在同一时刻只允许一个线程运行,擦。。。,那这还叫什么多线程呀?莫如此早的下结结论,听我现场讲。

时间: 2024-08-05 18:39:30

python之路第九编_线程和进程的相关文章

Python学习笔记——进阶篇【第九周】———线程、进程、协程篇(队列Queue和生产者消费者模型)

Python之路,进程.线程.协程篇 本节内容 进程.与线程区别 cpu运行原理 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queue队列 开发一个线程池 进程 语法 进程间通讯 进程池 参考链接http://www.cnblogs.com/alex3714/articles/5230609.html

Python之路44-进程与线程区别和GIL全局解释器锁

进程 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就成为进程,程序和进程的区别,程序是指令的集合,它是进程运行的静态描述文本,进程是程序的一次执行活动,属于动态概念 有了进程为什么还要有线程? 进程只能同一时间干一件事 进程在执行的过程中如果阻塞,例如等待输入,整个进程就会挂起,即使进程中有些工作不依赖此输入的数据,也将无法执行 线程 线城是操作系统能够进行运算调度的最小单位,它包含在进程中,是进程的实际运行单位 进程和线程的区别 线程共享创建它的进程的

Python_oldboy_自动化运维之路_线程,进程,协程(十一)

本节内容: 线程 进程 协程 IO多路复用 自定义异步非阻塞的框架 线程和进程的介绍: 举个例子,拿甄嬛传举列线程和进程的关系: 总结:1.工作最小单元是线程,进程说白了就是提供资源的 2.一个应用程序至少有一个进程,一个进程里至少有一个线程 3.应用场景:io密集型适合用多线程,计算密集型(cpu)适合用多进程 4.GIL:全局解释器锁,作用:保证同一个进程中只能有一个线程同时被调用 5.python的一个诟病:前提是被cpu调度,因为有GIL,一个应用只有一个进程,纵容有多个线程,也体现不出

python之路 -- 并发编程之线程

进程 是 最小的内存分配单位 线程 是 操作系统调度的最小单位 线程直接被CPU执行,进程内至少含有一个线程,也可以开启多个线程 开启一个线程所需要的时间要远远小于开启一个进程 GIL锁(即全局解释器锁) 锁的是线程 在Cpython解释器下的python程序 在同一时刻 多个线程中只能有一个线程被CPU执行 1.创建线程的两中方式: import time from threading import Thread def func(args): time.sleep(1) print(args

Python之路(十八):进程,线程,协程

python基础之进程.线程.协程 引子 进程 线程(优先阅读) 协程 进程 概念:就是一个程序在一个数据集上的一次动态执行过程(本质上来讲,就是运行中的程序(代指运行过程),程序不运行就不是进程)    抽象概念 组成:  1.程序:我们编写的程序用来描述进程要完成哪些功能以及如何完成  2.数据集:数据集则是程序在执行过程中所需要使用的资源  3.进程控制块:进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它来控制和管理进程,它是系统感知进程存在的唯一标志. 阐释:进程

Java千百问_01基本概念(006)_线程和进程有什么区别

点击进入_更多_Java千百问 1.进程是什么 进程(process)是具有一定独立功能的程序,操作系统利用进程把工作划分为一些功能单元. 进程是进行资源分配和调度的一个独立单位.它还拥有一个私有的虚拟地址空间,该空间仅能被它所包含的线程访问. 一个应用程序(application)是由一个或多个相互协作的进程组成的.例如,Visual Studio开发环境就是利用一个进程编辑源文件,并利用另一个进程完成编译工作的应用程序. 2.线程是什么 线程(thread)是进程中所包含的一个或多个执行单元

python学习笔记-(十三)线程、进程、多线程&多进程

为了方便大家理解下面的知识,可以先看一篇文章:http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 线程 1.什么是线程? 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 2.python GIL全局解释器锁(仅需了解) 无论你启多少个线程,你有多少个cpu, Python在执行的时

【Python学习之路】——Day10(线程、进程)

Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. #!/usr/bin/env python # -*- coding:utf-8 -*- import threading import time def show(arg): time.sleep(1) print 'thread'+str(arg) for i in range(10): t = threading.Thread(target=show, args=(i,)) t.start() p

python之路_flask框架_单例模式及session原理

实例化补充: 一.单例模式 1.单例模式介绍 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场.常见有如下四种单例模式: 单例模式1:模块 模块是天然的单例模式,因为在模块的第一次调用后会编译成.pyc文件,在以后的调用过程中会会直接加载.pyc文件. 单例模式2:类@classmethod (1)无法支持多线程情况: class Singleton(obj