03 2018 档案
摘要:前言 问题:普通套接字实现的服务端的缺陷 一次只能服务一个客户端! accept阻塞! 在没有新的套接字来之前,不能处理已经建立连接的套接字的请求 recv 阻塞! 在没有接受到客户端请求数据之前,不能与其他客户端建立连接 IO阻塞与非阻塞 阻塞IO模型 阻塞IO(blocking IO)的特点:就
阅读全文
摘要:前言 一个完整的计算机系统是由硬件、操作系统、应用软件三者组成,具备了这三个条件,一台计算机系统就可以自己跟自己玩了(打个单机游戏,玩个扫雷啥的) 如果你要跟别人一起玩,那你就需要上网了,什么是互联网? 互联网的核心就是由一堆协议组成,协议就是标准,比如全世界人通信的标准是英语,如果把计算机比作人,
阅读全文
摘要:Python Socket请求网站获取数据 阻塞 I/O ->收快递,快递如果不到,就干不了其他的活 非阻塞I/0 ->收快递,不断的去问,有没有送到,有没有送到,...如果送到了就接收 I/O多路复用 ->找个代理人(select), 去收快递。快递到了,就通知用户. 一 . 阻塞方式 block
阅读全文
摘要:前言 什么是单线程下的并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发。这样就可以节省创建线进程所消耗的时间。 并发的本质:切换+保存状态 yield本身就是一种在单线程下可以保存任务运行状态的方法,我们来简单复习一下: yiled可以保存状态,yield的状态保存与操作系统的保
阅读全文
摘要:进程池 为什么要有进程池?进程池的概念。 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务。那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗时间,销毁进程也需要消耗时间。第二即便开启了成千上万的进程,操作系统也不能让他们同
阅读全文
摘要:通信方式 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块主要通过队列方式 队列:队列类似于一条管道,元素先进先出 需要注意的一点是:队列都是在内存中操作,进程退出,队列清空,另外,队列也是一个阻塞的形态 Queue介绍: 创建队列的类(底层就是以管道和锁定的方式
阅读全文
摘要:if __name__ == 'main 一个python的文件有两种使用的方法,第一是直接作为程序执行,第二是import到其他的python程序中被调用(模块重用)执行。 因此if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程, 在if __name__ ==
阅读全文
摘要:fork介绍 Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。 子进程永远返回0,而父进程返回子进程的I
阅读全文
摘要:进程定义 程序: 计算机程序是存储在磁盘上的可执行二进制(或其他类型)文件。只有把它们加载到内存中,并被操作系统调用,它们才会拥有其自己的生命周期。 进程: 进程则是表示的一个正在执行的程序。每个进程都拥有自己的地址空间、内存、数据栈以及其他用于跟踪执行的辅助数据,负责执行程序的是CPU 并发与并行
阅读全文
摘要:修改个人信息程序 在一个文件里存多个人的个人信息,如以下 1.输入用户名密码,正确后登录系统 ,打印 2.每个选项写一个方法 3.登录时输错3次退出程序 修改个人信息 打印个人信息 修改密码 用户登陆 保存到文件 详细代码 #!/usr/bin/env python3 # -*- coding: u
阅读全文
摘要:1. 下载并安装oracle-instantclient11.2.x linux windows 下载地址http://www.oracle.com/technetwork/topics/winx64soft-089540.html 假设安装在C盘 在C:\instantclient_11_2设置
阅读全文
摘要:递归函数 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 函数实现过程 输出结果 为什么是这个结果 递归特性: 递归深度 python默认对最大递归层数做了一个限制:997,但是也可以自己限制 递归应用 小明是新来的同学,丽丽问他多少岁了。 他说:我不告诉你,但
阅读全文
摘要:员工信息管理 流程图 语法分析 where语句分析 where 语句的比较运算 解析删除语句 解析增加语句 解析修改语句 保存数据 解析查询语句 主函数 详细代码 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/3/17 12
阅读全文
摘要:Pycharm 连接Linux 远程开发 在Liunx上安装python3.6(Ubuntu16) Pycharm界面操作
阅读全文
摘要:匿名函数 匿名函数就是不需要显式的指定函数名。 关键字lambda表示匿名函数,冒号前面的n表示函数参数,可以有多个参数。 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。 用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象
阅读全文
摘要:全局与局部变量 在函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。 全局变量作用域是整个程序,局部变量作用域是定义该变量的函数。 当全局变量与局部变量同名时,在定义局部变量的函数内,局部变量起作用;在其它地方全局变量起作用。 不用传name 值到函数里,也可以在函数里调用外面的变
阅读全文
摘要:函数使用背景 假设老板让你写一个监控程序,24小时全年无休的监控你们公司网站服务器的系统状况, 当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警, 你掏空了所有的知识量,写出了以下代码 从图中可以看出上述代码存在了两个问题 1.代码冗余 2.维护性差 我们如何解决这个问题?请看下
阅读全文
摘要:文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 1 f = open(file='D:/工作日常/text.txt',mode='r',encoding='utf-8') 打开模式: 文件的打开模式 moder 只读模式,文件不存在时会报错。w 写入模式,文件
阅读全文
摘要:三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句 改成三元运算: 举例
阅读全文
摘要:计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算 算数运算 以下假设变量:a=10,b=20 注意在python //和/的区别 赋值运算: 以下假设变量:
阅读全文
摘要:介绍与安装 Beautiful Soup 是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据。BeautifulSoup 用来解析 HTML 比较简单, API非常人性化,支持CSS选择器、Python标准库中的HTML解析器, 也支持 lxml 的 XML解析器。
阅读全文
摘要:mongodb安装 mongodb配置 创建几个文件夹具体如下:数据库路径(\data\db\目录)、日志路径(\data\log\目录)和日志文件(mongod.log文件)c:\data\log\c:\data\db\ 创建配置文件mongod.cfg MongoDB服务安装启动
阅读全文