- 博客(75)
- 收藏
- 关注
原创 协程
【协程】1.定义:纤程 微线程,协程本质只有一个线程在运行2.功能原理:通过应用层程序,记录上下文栈区,实现在程序执行过程中的跳跃,选择可以不阻塞的部分执行,从而提高IO的执行效率3.优点:1.资源消耗很少2.无需多线程那样来回切换的开销3.无需进行同步互斥操作4.IO并发性好 缺点:1.无法利用计算机的多核资源2.程序不能够一个客户端单独长时间占有服务端4.底层实现...
2020-01-21 10:58:16 97
原创 线程
【线程】1.什么是线程:线程也是一种多任务编程方式,可以使用计算机的多核资源。线程被称为轻量级的进程。(在创建和删除时消耗的计算机资源小)2.线程的特征:线程是计算机核心分配的最小单位。一个进程可以包含多个线程线程也是一个运行过程,也要消耗计算机资源。多个线程共享进程的资源和空间。(空间,全局变量,分配的内存等)线程也拥有自己特有的资源属性,比如指令集,TID等线程无论是创建删...
2020-01-21 10:55:19 128
原创 进程-同步互斥机制
【同步互斥】1.同步互斥机制目的:解决对共有资源操作产生的争夺临界资源:多个进程或线程都能够操作的资源(例如终端)临界区:操作临界资源的代码段同步:同步是一种合作关系,为完成某个任务多进程和多线程之间形成一种协调,按照约定或条件依次执行操作临界资源,相互告知资源使用情况。(这种协调可能是因为阻塞关系达成的)互斥:互斥是一种制约关系,当一个进程或者线程进...
2020-01-21 10:45:26 1064
原创 进程间通信
【进程间通信】进程间由于空间独立,资源互相无法直接获取此时在不同的进程间传递数据就需要专门的进程间通信方法和磁盘交互:使用中间文件,但是不安全,速度慢进程间通信方法(IPC):管道、消息队列、共享内存、信号、信号量、套接字【管道通信Pipe】1.原理:在内存中开辟一块空间,形成管道结构,管道对多个进程可见,进程可以通过对管道的读写操作进行通信2.[multiproc...
2020-01-21 10:41:29 176
原创 孤儿进程、僵尸进程
【孤儿进程】产生条件:父进程先于子进程退出,此时子进程就会成为孤儿进程特征:孤儿进程会被系统指定的进程的收养,即系统进程会成为孤儿进程新的父进程当孤儿进程退出时,‘继父’会处理孤儿进程退出状态,使其不会成为僵尸【僵尸进程】产生条件子进程先于父进程退出,父进程没有处理子进程的退出状态,此时子进程就会成为僵尸进程特征:*僵尸进程会滞留部分PCB信息在...
2020-01-21 10:31:56 129
原创 服务器模型、多进程并发
【服务器模型】【服务器的基本介绍】硬件服务器:主机 集群生产服务器厂商:IBM、HP、联想、浪潮软件服务器:编写的服务端程序,依托于硬件服务器运行,提供给用户一定的软件服务分类: webserver—>网络后端程序提供网络请求的后端处理和数据交互httpserver—>处理HTTP请求、回复http响应邮箱服务器—>提供邮箱服务文件服务器—&g...
2020-01-21 10:27:44 345
原创 多线程并发模型
【多线程并发模型】基于threading的多线程并发1.对比多进程并发:1.优点:资源消耗小2.缺点:需要注意共享资源的争夺python多线程收到GIL的影响2.实现方式:threading socket 模块完成3.实现步骤:1.创建套接字,绑定,监听2.接收客户端连接请求,创建新的线程3.主线程继续等待其他客户端连接,分支线程执行客户端请求4.处理完客户端请求后,分...
2020-01-21 10:24:20 515
原创 多进程的概念
【多进程】进程的定义:程序在计算机中的一次执行过程程序与进程的区别:程序:是一个静态的过程,占有磁盘,不占用计算机的运行资源进程:是一个动态的过程描述,占有(CPU内存)计算机的资源,有一定的生命周期注意:同一个程序,每次运行都是不同的进程。因为分配的计算机资源不同,生命周期也不同进程的创建流程:用户空间运行一个程序,发起进程的创建(申请创建进程)操作系统接受用户...
2020-01-21 10:20:06 2150
原创 创建自定义进程类,进程池
【创建自定义进程类】继承Process类运行Process类的__init__以获取父类属性重写run方法,在通过自定义类生成对象后,调用start()会自动执行这个方法示例:from multiprocessing import Processimport timeclass ClockProcess(Process): def __init__(self, valu...
2020-01-21 10:17:58 518
原创 socket服务器集成模块
python2 SocketServerpython3 socketserver1.功能:通过模块的接口完成基于多进程/多线程的tcp/udp的socket并发程序2.模块类:DatagramRequestHandler 处理udp请求StreamRequestHandler 处理tcp请求UDPServer 提供udp服务端类TCPServer 提供tcp服务端类Forking...
2020-01-21 10:13:39 189
原创 multiprocessing创建进程
【创建进程】multiprocessing 模块创建进程 标准库1、需要将要做的事件进行封装成函数2、使用multiprocessing提供的类Process创建进程对象3.通过对象和Process的初始化函数对进程进行设置以及绑定要执行的事件4、启动进程,进程启动会自动执行函数代表的事件5、完成进程回收创建进程对象:multiprocessing.Process()功能...
2020-01-21 10:10:43 395
原创 fork创建进程idppid
【需求】:编写一个程序能够同时做多件任务【方案】:写一个程序,根据需要在程序内部可以创建多个进程完成任务1.import os pid = os.fork()函数 功能:创建一个新的进程 参数:无 返回值: 1.失败返回一个负数 -1 2.成功:在原有进程中返回(大于0的正整数)新进程的PID号,在新进程中返回0 总结: 1.子进程会复制父进程全部代码段,包括fork...
2020-01-21 10:05:33 273
原创 IO
【IO input output】在内存中存在数据交换的操作都可以认为是输入输出比如:内存和磁盘交互 读写操作内存和网络交互 recv sendIO密集型程序:程序执行大量的IO操作,而较少的cpu运算特点:消耗cpu较少,运行时间长CPU密集型程序(计算密集型):程序中大量的操作都需要cpu运算,IO操作较少特点:消耗cpu大,运行速度快IO分类:阻塞IO 非...
2020-01-21 09:58:27 134
原创 基础的HTTP服务器
【基础的http服务器】接收HTTP请求给出一定的响应# http_server.py# 基础的http服务器# 1.接收HTTP请求# 2.给出一定的响应# 在浏览器输入本机ip:端口号即可访问index.htmlfrom socket import *# 处理客户请求,返回响应def handleClient(connfd): # 接收消息 requ...
2020-01-21 09:50:02 153
原创 基于UDP的编程
【基于upd的服务端】创建套接字—>数据报套接字sockfd = socket(AF_INET,SOCK_DGRAM)绑定服务端地址sockfd.bind()消息的收发data = recvfrom(buffersize)功能:接收UDP消息参数:每次最多接收消息的大小返回值:接收到的内容接收到的消息的发送者注意:recvfrom一次接收一个数据包,如果数...
2020-01-21 09:48:03 131
原创 套接字sockets
【sockets套接字编程】1.目的:通过编程语言提供的函数接口进行组合,更简单的完成基于tcp或者udp通信的网络编程2.套接字:完成上述目标的一种编程方法3.套接字分类:流式套接字(SOCK_STREAM): 传输层基于tcp的协议进行通信数据报套接字(SOCK_DGRAM): 传输层基于udp协议进行通信底层套接字(SOCK_RAM): 访问底层协议的套接字 &n...
2020-01-21 09:43:10 246
原创 流式套接字(基于TCP)
【流式套接字的编程(基于tcp协议的】1.TCP服务端:import socket1.创建套接字 socket.socket(socket_family=AF_INET, socket_type=SOCK_STREAM proto=0) 功能:创建一个套接字 参数:socket_family : 选择地址族类型AF_INET 使用IPV4 socket_typ...
2020-01-21 09:32:15 2043
原创 网络基础概念
【七层模型】网络的起源(了解)网络的目的:数据的传输ISO: 国际标准化组织1.OSI:七层模型-----> 网络通信的标准化流程1.应用层:提供用户服务,具体内容由特定程序规定2.表示层:数据的压缩优化加密3.会话层:建立应用连接,选择传输层服务4.传输层:提供数据传输服务,流量控制5.网络层:路由选择,网络互联6.链路层:提供链路交换,具体的消息的发送7.物理层:物...
2020-01-21 09:23:48 219
原创 字节串和字节数组
【容器类型:】【字节串bytes 和 字节数组bytearray】1byte = 8bit11111111 = 255最大数0xFF = 255最小数0x00 = 0容器类型:str 、 list 、 tuple 、 dict 、 set 、 frozenset、bytes、bytearray字节串(bytes)(不可变的):作用:存储以字节为单位的数据说...
2020-01-20 17:29:08 825
原创 字符串
1.字符串:str1. 作用:用来记录文本(文字)信息2. 字符串的表示方法:在非注释中,凡是用引号括起来的部分都是字符串' ' 单引号 ''' ''' 三单引号" " 双引号 """ """ 三双引号print()3.空字符串的字面值表示方式''""''''''""""""(注意:中间什么都没有,不是空格,空格算空格字符串)4.单引号和双引号的区...
2020-01-20 17:19:32 251
原创 异常
【异常处理exception】1.什么是错误:错误: 错误是指由于逻辑或语句等导致一个程序无法正常执行的问题特点: 有些错误是无法预知的2. 什么是异常:异常: 异常是程序出错时标识的一种状态 当异常发生时,程序不会再向下执行,而转去调用此函数的地方待处理此错误并恢复为正常状态异常的作用: 1.通知上层调用者有错误产生需要处理 2.用作信号通知3. Python全部的...
2020-01-20 17:03:47 128
原创 循环语句
循环1.while 语句 1.作用: 根据一定条件,重复的执行一条语句或多条语句 2.语法: while 真值表达式: 语句块 else: 语句块3.语法说明: 1.先执行真值表达式,判断True/False 2.如果为True则执行语句块1,然后跳转到第一步 3.如果为False则执行else语句子句部分的语句块2,然后结束此while语句的执行。如果没有e...
2020-01-20 16:45:02 162
原创 文件系统资料
【文件】【mode 模式字符的含义:】字符 含义'r' 以只读方式打开(默认)'w' 以只写方式打开,删除原有文件内容(如果文件不存在,则创建该文件并以只写方式打开)'x' 创建一个新文件, 并以写模式打开这个文件,如果文件存在则会产生"FileExistsError"错误'a' 以只写文件打开一个文件,如果有原文件则追加到文件末尾'b' 用二进制模式打开't' 文本...
2020-01-20 16:32:44 132
原创 文件
【文件】什么是文件?1.文件是用于数据存储的单位2.文件通常用来长期存储数据3.文件中的数据是以字节为单位进行顺序存储的文件的操作流程:1.打开文件2.读写文件3.关闭文件注:任何的操作系统,一个应用程序同时打开的文件的数量有最大数限制文件的打开函数 open:在python中,使用open()这个函数来打开文件并返回文件对象open(file,mode = ‘...
2020-01-20 16:23:31 432
原创 数字类型&if pass
1.数字类型:1.整型(int)2.浮点型(float)3.布尔类型(True/False) 4.复数类型(complex)2.算术运算符:+ - * / // **(幂运算) %(取余)* 当高精度数据和低精度数据进行运算的时候结果自动转换为高精度* / 除法,得到浮点数,真除法* // 地板除,取整数商(小数部分直接省略)优先级: ** / // * %...
2020-01-20 16:08:40 618
原创 全部异常类型
【Python全部的异常类型】错误类型 说明ZeroDivisionError 除(或取模)零 (所有数据类型)ValueError 传入无效的参数AssertionError 断言语句失败StopIteration 迭代器没有更多的值IndexError 序列中没有此索引(index)IndentationError 缩进错误OSError 输入/输出操作失败I...
2020-01-20 12:50:10 415
原创 python模块简介
【模块】问题导入:多人写一个程序该怎能做?1. 模块(Module):定义: 模块是一个包含有一系列数据,函数,类等组成的程序组 模块是一个文件,模块文件名通常以.py结尾作用: 让一些相关的数据,函数,类等有逻辑的组织的在一起,使逻辑结构更加清晰 模块中的数据,函数,和类等可提供给其他模块或程序使用模块的分类: 1.内置模块(builtins),在解析器的内部可以直接使用...
2020-01-20 12:48:32 323
原创 集合
【集合set】1.集合的特征:集合是【可变】的容器集合内的数据对象是唯一的(不能重复多次)集合是无序的存储结构,集合中的数据没有先后关系集合内的元素必须是不可变对象集合是可迭代的集合是相当于只有键没有值的字典(键则是集合的数据)2.创建集合:1.创建空集合: s = set() # 只有这一种方法创建非空集合(注意:s = () 是创建元组,s = {} 是创建字典)2.创...
2020-01-20 12:44:30 518
原创 字典
【字典dict】1.字典的概念:1.字典是一种可变的容器,可以存放任意类型的数据2.字典中的每一个数据都是用键(key)进行索引,而不像序列可以用下标进行索引3.字典的数据没有先后顺序关系,字典的存储是无序的4.字典中的数据以键(key)-值(value)对进行映射存储5.字典的键不能重复,【且只能用不可变类型作为字典的键】2.字典的字面值表示方式:用{}括起来,以冒号(:)分隔...
2020-01-20 12:39:58 246
原创 元组
【元组:tuple】元组是不可改变的序列,同list一样,元组可以存放任意类型的元素,一旦元组生成,则它不可改变1.元组的表示方式:用小括号()括起来,单个元素括起来用逗号(,)区分是单个对象还是元组2.创建元组:1.创建空元组的字符值: t = ()2.创建非空元组的字面值: t = 200, t = (20,) t = (1,2,3) t = 100,200,3003...
2020-01-20 12:37:01 2108
原创 列表
【列表 list】列表list列表是由一系列特定元素组成的,元素和元素之间没有任何关联关系,但他们之间有先后顺序关系列表是一种容器列表是序列的一种>>> x = [1,2,3]列表是可以被改变的序列python中的序列类型简介(sequence)字符串str列表list元组tuple字节串bytes字节数组bytearray创建列表:创...
2020-01-20 12:33:29 202
原创 类和对象
【类和对象】1.什么是对象(object):对象是指现实中的物体或实体2.什么是面向对象:把一切看成对象(实例),让对象和对象之间建立关联关系3.对象都有什么特征:对象有很多的属性(名词)对象有很多的行为(动作或动词)对象 = 属性 + 方法一个对象的特征称为“属性”、一个对象的行为称为“方法”# 特征的描述称为属性,在代码层面来看其实就是变量# 方法实际就是函数,通过调...
2020-01-20 11:14:27 298
原创 函数
【函数】1.什么是函数:函数是可以重复执行的语句块,可以重复使用2.作用:1.用于封装语句块,提供代码的重用性2.定义用户级别的函数3.内建函数:len() min () max() sum() print()4.函数的(定义)创建:语句: def 函数名(形参列表): 语句块def 语法说明: 1.函数名就是语句块的名称 2.函数的...
2020-01-20 10:57:34 207
原创 迭代器生成器
【迭代器itrtator、生成器generator】迭代的意思类似于循环,每一次重复的过程被成为一次迭代的的过程,而每一次迭代得到的结果会被用来下一次迭代的初始值。提供迭代方法的容器成为迭代器通常接触的迭代器有序列(列表、元组、字符串)还有字典也是迭代器,都支持迭代的操作 迭代器:什么是迭代器:迭代器是指用iter(可迭代对象)函数返回的对...
2020-01-20 10:16:25 131 2
原创 id的用法
id(查看在计算机的内存位置)>>> x = [1,2,3]>>> id(x)140302910030024>>> y = [1,2,3]>>> id(y)140302902523144>>> x[1]=6>>> x[1, 6, 3]>>> id(x)...
2020-01-20 10:02:34 1062
原创 Java面试
一、JAVA基础1. 列出JAVA中所有基本数据类型,并说明这些数据类型占用的字节数??答案:java的原始数据类型,也可以叫java的基本数据类型,一共就8个,分别是:byte、short、int、long、boolean、char、float、doublebyte 1个字节boolean 1个字节char 2个字节short 2个字节int 4个字节long 8个字节flo...
2020-01-16 19:59:49 1432
原创 Linux命令
linux 路径tarena@zxl:~$当前所在位置即当前正在工作的文件夹~:表示当前用户的主目录每一个用户系统都会自动为其创建一个文件夹,为这个用户的主文件夹linux为典型的树形目录结构,每个文件位置都可以通过一定的路径来表示如何表示一个文件的路径绝对路径:从根目录开始逐层的描述某个文件的位置特征:一定是'/'作为开头相对路径:表示以当前工作位置为基准对目标位置...
2020-01-16 19:49:20 417
原创 Redis-企业级解决方案
企业级解决方案1.缓存预热宕机-服务器启动后迅速宕机问题排查:请求数量较高主从之间数据吞吐量较大,数据同步操作频度较高解决方案前置准备工作:日常例行统计数据访问记录,统计访问频度较高的热点数据利用LRU数据删除策略,构建数据留存队列。例如:storm与kafka配合准备工作将统计结果中的数据分类,根据级别,redis优先加载级别较高的热点数据利用分布式多服务器同时...
2020-01-15 19:23:30 332
原创 Redis-集群
集群简介业务发展过程中遇到的峰值瓶颈redis提供的服务OPS可以达到10万/秒,当前业务OPS已经达到20万/秒内存单机容量达到256G,当前业务需求容量1T使用集群的方式就可以快速解决上述问题集群架构概念:集群就是使用网络将若干台计算机联通起来,并提供统一管理方式,使其对外曾现单机的服务效果作用:分散单台服务器的访问压力,实现负载均衡分散单台服务器的存...
2020-01-15 19:15:24 117
原创 Redis-哨兵
哨兵简介主机master"宕机"将宕机的master下线找一个slave作为master通知所有的slave连接新的master启动新的master与slave全量复制*N+ 部分复制*N 哨兵哨兵(sentine)是一个分布式系统,用于对主从结构中的每台服务器进行 监控,当出现故障时通过投票机制 选择 新的master并将所有slave连...
2020-01-14 20:08:31 112
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人