自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 MySql==>初识数据库

day42一.mysql相关概念介绍二.mysql基本管理设置密码忘记密码三.sql语句基础SQL语句中的快捷键操作数据库的步骤数据库操作1.库操作=>文件夹2.表操作=>文件3.记录操作=>文件中的一行内容退出MySQL卸载MySQL(Windows)存储引擎场景四.mysql安装windows安装mysql5.7mysql相关基础操作一.mysql相关概念介绍mysql 使用方法:方法一:通过图形界面工具,如Navicat等(高级课使用)方法二:通过在命令行敲命令来操作(基础阶

2020-08-31 20:48:49 126

原创 并发编程,面向对象复习

day41一.昨日回顾二.今日内容(1)基于协程的高并发客户端服务端(2)并发编程(3)面向对象一.昨日回顾1.线程池和进程池的shutdown-等待池中所有任务执行完毕后关闭池(不能写在for循环中)2.定时器-Timer:延迟几秒后执行一个任务,Timer(时间,任务)3.协程介绍-单线程下实现并发,人为制造出来的,操作系统感知不到,通过保存状态和切换,理想效果是遇到io切换-串行执行和通过yield关键字切换,时间长短,单纯的切换反而影响效率4.greenlet模块(初级模块)

2020-08-29 19:04:59 177

原创 线程进程补充内容,协程,io模型

day40一.昨日回顾二.今日内容1.线程池shutdown2.定时器(了解)3.协程4.greenlet模块5.gevent猴子补丁例1:一个函数对象赋值给另外一个函数对象例2:monkey patch的应用场景7.asyncio模块(了解)8.io模型(*****)9.补充内容之虚拟环境一.昨日回顾1.GIL锁: 全局解释器锁,因为垃圾回收线程不是线程安全的,所有线程必须拿到这把锁,才能执行2.GIL跟互斥锁的区别? GIL锁不能保证我们自己的数据安全,自己使用互斥锁保证自己的数据安全3.不同线

2020-08-27 19:58:20 138

原创 day39作业:验证GIL,递归锁,event事件,线程池

day391 通过启动跟自己机器cpu相同的进程和线程数,验证GIL的存在2 测试计算密集型和io密集型执行时间3 通过递归锁解决课上死锁现象4 通过event事件,实现两个线程,一个线程读文件前一半,写入另一个文件,另一个线程读后一半写入文件5 把上面的4的代码,通过线程池实现1 通过启动跟自己机器cpu相同的进程和线程数,验证GIL的存在from multiprocessing import Processfrom threading import Threadimport timedef

2020-08-26 19:13:31 134

原创 day38作业:线程

day381 通过进程和queue实现简单的生产者消费者默写2 代码实现开启线程两种方式3 代码实现等待子线程执行完成,主线程再继续执行4 验证同一进程下多线程共享数据5 通过线程互斥锁,实现每次a.txt中的数字减一,防止写乱6 利用多进程或多线程自己实现TCP服务端的并发1 通过进程和queue实现简单的生产者消费者默写from multiprocessing import Process,Queueimport timeimport randomdef producer(name,food

2020-08-25 20:54:46 127

原创 并发编程

这里写目录标题进程1 进程对象的其他方法和属性2 守护进程什么意思,如何实现3 进程互斥锁有什么作用,如何创建,获取,释放4 队列如何创建,赋值,取值5进程间通信如何实现进程1 进程对象的其他方法和属性 -pid进程id号,os.getpid() -ppid:父进程id号,os.getppid() -is_alive():当前进程是否存活 -terminate():关闭当前进程2 守护进程什么意思,如何实现-父进程结束,子进程也跟着结束-t.daemon=Truef

2020-08-25 18:41:21 131

原创 线程

DAY38一.生产者消费者模型初级生产者消费者模型如果queue中没有数据了,消费者会一直卡住制造两个消费者多个生产者和多个消费者最终版本,不用放NoneJoinableQueue()二.线程线程:线程与进程的区别可以归纳为以下4点:开启线程的2种方式第一种第二种,通过类继承的方式三.线程对象join方法四.同一个进程下的多线程数据共享五.线程对象及其他方法重点掌握六.守护线程七.线程互斥锁八.GIL全局解释器锁理论一.生产者消费者模型生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题生产

2020-08-25 18:32:51 150

原创 day37作业:互斥锁模拟抢票,队列,多进程实现生产者消费者模型

1 主进程中创建两个其它进程,实现主进程结束,两个子进程也自动结束(默写出来)from multiprocessing import Processimport timedef task(): print('子进程') time.sleep(20) print('子进程结束')if __name__ == '__main__': t=Process(target=task) t1 = Process(target=task) t.daemon=True t1.daemon = Tr

2020-08-24 19:49:20 161

原创 进程的其他方法,守护进程,互斥锁,队列,进程间通信

day37一.上次课程回顾操作系统发展史多道技术(了解)同步异步 阻塞非阻塞创建进程的2种方式(重点)第一种第二种join方法进程间数据相互隔离二.今日内容进程调度僵尸进程与孤儿进程进程对象及其他方法守护进程互斥锁多进程模拟抢票实例魔法方法之__enter__和__exit__队列介绍基本用法总结:IPC机制(进程间通信)一.上次课程回顾操作系统发展史https://www.cnblogs.com/xiaoyuanqujing/articles/11715635.html多道技术(了解)https

2020-08-24 17:31:22 209

原创 进程(理论及应用),join方法

day36一.进程理论什么是进程什么是程序串行,并发,并行进程的创建进程的终止程序运行的三种状态同步\异步and阻塞\非阻塞(重点)阻塞:非阻塞:同步:异步:总结:二.进程应用开启进程的方式一:开启进程的方式二:三.join方法一.进程理论什么是进程进程就是一个程序运行的过程什么是程序程序就是一堆代码文件串行,并发,并行串行:多个任务依次运行,一个运行完毕再运行下一个并行:多个任务是真的在同时运行,只有多个CPU才有并行的概念并发:多个任务看起来是在同时运行进程的创建Windows

2020-08-20 15:41:54 943

原创 猴子补丁,内置函数,垃圾回收机制,进程

day35一.猴子补丁猴子补丁的用法:1、运行时动态替换模块的方法2.运行时动态增加模块的方法二.内置函数三.垃圾回收机制1.什么是垃圾回收机制?2.为什么要用垃圾回收机制?3.储备知识堆区与栈区直接引用与间接引用4.垃圾回收机制原理引用计数的问题:循环引用(交叉引用)==>内存泄露效率问题四.进程一.猴子补丁属性在运行时的动态替换,叫做猴子补丁(Monkey Patch)猴子补丁的用法:1、运行时动态替换模块的方法很多代码用到 import json,后来发现ujson性能更高,如果觉得把

2020-08-19 18:44:15 248

原创 元类

day34一.元类介绍二.class关键字底层做了哪些事补充知识:三.自定义元类四.自定义元类来控制OldboyTeacher类的产生五.自定义元类来控制OldboyTeacher类的调用六.单例模式(*****)实现方式1:classmethod方式2:元类方式3:装饰器属性查找:(了解)一.元类介绍一切源自于一句话:python中一切皆为对象# 元类=》OldboyTeacher类=》objclass OldboyTeacher(object): school = 'oldboy'

2020-08-18 14:21:19 103 1

原创 基于udp协议的套接字通信,socketserver模块,阿里云部署

day33一.基于udp协议的套接字通信udp套接字简单示例udp协议服务端udp协议客户端二.基于socketserver模块实现并发tcp服务端客户端三.基于socketserver模块实现并发udp服务端客户端四.阿里云部署服务端客户端一.基于udp协议的套接字通信TCP 协议与 UDP协议对比tcp协议是可靠协议,对方必须回复一个ack确认信息,才会将自己这段的数据从内存中删除tcp有链接,传输数据的效率较udp低tcp协议有粘包问题udp协议不可靠协议,发送一条消息就会立即删除,不管

2020-08-17 14:49:47 283

原创 模块:time,os,shutil

模块time获取本地时间戳time.time()获取本地时间字符串(参数是时间戳,默认当前)time.ctime()获取本地时间元组(参数是时间戳,默认当前)time.localtime()通过时间元组获取时间戳(参数是时间元组)time.mktime()程序睡眠等待time.sleep格式化时间字符串(格式化字符串,时间元组)time.strftime将时间字符串通过指定格式提取到时间元祖中(时间字符串,格式化字符串)time.strptimeos在pyth

2020-08-14 19:55:13 101

原创 流式协议

一.流式协议tcp流式协议===>粘包问题(***)只有tcp协议有粘包问题,udp协议没有socket收发消息的原理:解决方案:自定义应用层协议注意:head+datahead的长度必须固定引子:tcp是基于数据流的,于是收发的消息不能为空,这就需要在客户端和服务端都添加空消息的处理机制,防止程序卡住client.pyfrom socket import *client = socket(AF_INET, SOCK_STREAM)# print(client)cli

2020-08-14 15:35:23 687

原创 socket的通信流程介绍/基于tcp协议通信的套接字程序

day31一.socket的通信流程介绍套接字工作流程二.基于tcp协议通信的套接字程序low版的套接字通信client.pyserver.py运行结果:加上循环改进版client.py改进版server.py远程执行命令client.pyserver.py总结:注意:一.socket的通信流程介绍基于文件类型的套接字家族套接字家族的名字:AF_UNIXunix一切皆文件,基于文件的套接字调用的就是底层的文件系统来取数据,两个套接字进程运行在同一机器,可以通过访问同一个文件系统间接完成通信基于网络

2020-08-13 14:58:17 597

原创 tcp/udp协议详解,上网的流程

一.tcp/udp协议详解tcp协议:可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。优点:可靠,稳定,传输完整稳定,不限制数据大小缺点:慢,效率低,占用系统资源高,一发一收都需要对方确认应用:Web浏览器,电子邮件,文件传输,大量数据传输的场景以太网头ip头tcp头数据udp协议:不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放

2020-08-12 15:05:33 1031

原创 OSI五层协议详解

day29一.OSI五层协议详解物理层:数据链路层:ethernet以太网协议网络层: IP协议总结:一.OSI五层协议详解互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层应用层: 封装数据 http,ftp,自定义协议传输层: 封装端口 tcp或者udp网络层: 封装ip IP协议数据链路层:封装mac地址 ethernet以太网协议物理层:打成数据包,变成二进制字节流,通过网络进行传输.我们将应用层,表示层,会话层并作应用层,来详细了解五层协议,每层

2020-08-11 18:46:46 6166

原创 选课项目

选课项目♥♥♥选课项目前期准备一.conf放置配置信息setting二.core:放置用户视图层src.pyadmin.pyteacher.pystudent.py三.db:数据操作层py文件和以文件形式保存的数据db_handler.pymodels.py四.interface:admin_interface.pycommon_interface.pyteacher_interface.pystudent_interface.py五.lib:放置公共方法common.py六.启动文件start.py七.r

2020-08-11 17:33:56 228

原创 选课项目前期准备

选课项目前期准备一.需求:项目要求:选课系统角色:学校、学生、课程、讲师要求:1. 创建北京、上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. 管理员创建学校 ,老师,课程4. 课程包含课程名称(周期,价格等属性)5. 学校包含学校名称,地址等属性6. 创建老师角色要关联学校7. 学生注册登录后,可以选择学校,选择课程,查看成绩8. 老师登录后,可以查看教授课程,选择想要教授的课程,查看课程下的学生,修

2020-08-11 17:12:03 90

原创 网络编程

网络编程日考异常处理,socket异常处理,socket1什么是异常,异常的三个组成是什么?2如何正确处理异常3异常处理的完整语法是?4raise的功能与用途5assert的功能与用途6什么是网络7osi七层是哪七层...

2020-08-11 08:40:56 100

原创 异常处理,套接字编程

day28一.异常处理(1)什么是异常(2)为何要处理异常(3)如何处理异常例1:异常类只能用来处理指定的异常情况,如果非指定异常则无法处理。例2:异常类只能用来处理指定的异常情况例3:多分支例4:异常的其他机构例5:此种情况可用于测试或爬虫例6:Exception==>万能异常例7:主动触发异常例8:自定义异常例9:断言:assert 条件总结try...except...:注意:二.套接字编程一.异常处理(1)什么是异常异常是错误发生的信号,一旦程序出错就会产生一个异常,如果该异常没有被处

2020-08-10 19:54:37 133

原创 多态

一.多态同一种事物有多种形态例如:动物这种事物有多种形态,如人/狗/猪特性:我们可以在不考虑某一个对象具体类型的前提下,直接使用该对象父类有的功能,子类一定有import abcclass Animal(metaclass=abc.ABCMeta): @abc.abstractmethod def speak(self): pass @abc.abstractmethod def run(self): pass # Animal() #Animal的作用是用来制定标准的

2020-08-09 13:30:41 82

原创 继承

day26一.继承介绍1.什么是继承2.为何要继承3.如何实现继承继承案例:重复代码还是很多,可以再改进一下二.在子类派生的新方法中重用父类的功能方式之一方式一:指名道姓地调用某一个类的函数改进后案例:三.属性查找例1:例2:父类如果不想让子类覆盖自己的方法,可以在方法名前加前缀__,将方法设置为私有的四.继承的实现原理1.补充知识:2.继承的实现原理五.mixins机制(了解)一.继承介绍1.什么是继承继承是一种新建类的方式,新建的类称之为子类,被继承的类称之为父类,基类,超类python 支持多

2020-08-06 16:47:40 132

原创 封装,property,绑定方法与非绑定方法

一.封装面向对象三大特征:封装,继承,多态最重要的一个特性就是封装,封装就是把数据和功能整合到一起.所以封装==整合在封装的基础上,我们可以将装到对象或类中的属性隐藏起来,注意:(1).在定义或者初始化对象时,在属性前加__,就会将该属性隐藏起来,但该隐藏起始只是一种变形_类名__属性名,并没有真正的隐藏起来(2)该变形操作是在类定义阶段扫描语法时发生的变形,类定义之后添加的__开头的属性不会发生变形(3)该隐藏是对外不对内的(4)在继承中,父类如果不想让子类覆盖自己的方法,可以将方法定义

2020-08-05 16:10:44 167

原创 类与对象,初始化方法,属性查找

day24一.类与对象如何基于面向对象的思想写程序类与对象是python提供专门的语法来更漂亮地实现面向对象编程类体代码会在类定义阶段立刻执行,然后将产生的名字都丢到类的名称空间中二.初始化方法例1:例2:例3:三.属性查找属性查找优先级:1.类中定义的数据是直接共享给所有对象使用的2.类中定义的函数是绑定给所有对象用的,绑定给谁就应该由哪个对象来调用一.类与对象如何基于面向对象的思想写程序例1:# 学生的数据stu_name = "egon"stu_age = 18stu_gender =

2020-08-04 15:52:28 192

原创 day23:作业(正则表达式)

import re1、匹配密码,密码必须是由6位数字与字母组成,并且不能是纯数字也不能是纯字母1.1 知识点:# ?!pattern,表示在没有配到pattern的字符串的前提下,再进行后续的正则表达式匹配,后续匹配仍然从被匹配字符串的头开始1.2 答案:print(re.search("(?!^[0-9]+$)(?!^[a-zA-Z]+$)^[0-9A-Za-z]{6}$","123asf").group()) # 123asf1.3 解释:上述正则的意思为:在匹配(?![0-9]+$)

2020-08-04 14:14:52 176

原创 第一次月考内容

月考1.什么是迭代器?2.为何要有迭代器?3.什么是可迭代的对象?4.什么是迭代器对象?5.如何得到自定义的迭代器?6.多个叠加装饰器的加载顺序与执行顺序是?7.什么是三元表达式?8.递归的两个阶段是什么?9.什么面向过程的编程思想?优缺点是?10.请列举5个或以上的内置函数。11.表达式“[3] in [1, 2, 3, 4]”的值为_________?(1分)12.转义字符’\n’的含义是________?(1分)13.任意长度的Python列表、元组和字符串中最后一个元素的下标为__________?

2020-08-03 18:43:00 1357

原创 re模块,面向对象编程

day23一.re模块常用匹配模式:(元字符)匹配模式详解re模块提供的方法介绍二.面向对象编程一.re模块正则表达式常用匹配模式:(元字符)匹配模式详解import re# 1.\w 匹配字母数字下划线(包括中文)print(re.findall('\w\w\w',"h ello 123_ (0"))# ['ell', '123']# 2.\W 匹配非数字字母下划线print(re.findall('\W',"h ello 123_ (0"))# [' ', ' ', ' ',

2020-08-03 15:47:49 355

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除