47-附录二:GIL新解 一:cpu和GIL必须都具备才可以执行代码; 拿到cpu权限-》拿到GIL解释器锁-》执行代码 在python3.2之后GIL有了新的实现,目的是为了解决that GIL thrashing问题,这是Antoine Pitrou的功劳 二:GIL解释器锁会在两种情况下释放2.1、主动释放:自己主动交出来遇到IO操作或者分配的cpu时间片到时间了 注意,GIL存在的意义在于维护线程安全,x 2022-07-18 Python > 12_附录补充
46-附录一:PEPB规范 一 PEP8规范是什么? PEP是Python Enhancement Proposal的缩写,通常翻译为“Python增强提案”。 每个PEP都是一份为Python社区提供的指导Python往更好的方向发展的技术文档,其中的第8号增强提案(PEP 8)是针对Python语言编订的代码风格指南。 尽管我们可以在保证语法没有问题的前提下随意书写Python代码,但是在实际开发中,采用一致的风格书 2022-07-18 Python > 12_附录补充
Day44-数据库(一) “Day44-数据库(一)学习笔记” 一 、数据库管理软件的由来数据库管理软件是怎么来的? 1.1 数据的保存问题数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上。 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文 件存取数据,并没有问题。 很不幸,这些假设都是你自己意淫出来的,上述假设存在以下几个问题。。。。。。 2022-07-18 Python > 03_MySQL
38-并发编程(七) 一 IO模型介绍为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这 2022-07-18 Python > 02_Python进阶
37-并发编程(六) 一 引子本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情况下切走去执行其他的任务(切换由操作系统强制控制),一种情况是该任务发生了阻塞,另外一种情况是该任务计算的时间过长或有一个优先级更高的程序替代了它 ps:在介绍进程理论时,提及进程的三种执行状态,而线程才是执行 2022-07-18 Python > 02_Python进阶
36-并发编程(五) 一 threading模块介绍multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 官网链接:https://docs.python.org/3/library/threading.html?highlight=threading# 二 开启线程的两种方式方式一 #方式一 from threading import Thread i 2022-07-18 Python > 02_Python进阶
35-并发编程(四) 一 什么是线程在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一个流水线 流水线的工作需要电源,电源就相当于cpu 所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位。 2022-07-18 Python > 02_Python进阶
34-并发编程(三) 一 multiprocessing模块介绍python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。Python提供了multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似。 mu 2022-07-18 Python > 02_Python进阶
33-并发编程(二) 一 什么是进程进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 举例(单核+多道,实现多个进程的并发执行): egon在一个时间段内有很多任务要做:python备课的任务,写书的任务,交女朋友的任务,王者荣耀上分的任务, 但egon同一时刻只能做一个任务(cpu同一时间只能干一个活),如何才能玩出多个任务并发执行的效果? egon备一会课,再去跟李杰的女朋友聊聊天,再去打一会 2022-07-18 Python > 02_Python进阶
32-并发编程(一) 一 引子顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。 所以想要真正了解进程,必须事先了解操作系统 二 为什么要有操作系统现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出 2022-07-18 Python > 02_Python进阶
31-网络编程 一 客户端/服务器架构1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开 2022-07-18 Python > 02_Python进阶
30-异常处理 一 什么是异常异常是程序发生错误的信号。程序一旦出现错误,便会产生一个异常,若程序中没有处理它,就会抛出该异常,程序的运行也随之终止。在Python中,错误触发的异常如下 而错误分成两种,一种是语法上的错误SyntaxError,这种错误应该在程序运行前就修改正确 >>> if File "<stdin>", line 1 if 2022-07-18 Python > 02_Python进阶