01 2021 档案
摘要:文本处理服务 https://docs.python.org/zh-cn/3/library/re.html#module-re 正则表达式对象的方法 1、regex.findall(string,pos,endpos) 功能 : 根据正则表达式匹配目标字串内容 参数 : string, 目标字符串
阅读全文
摘要:1、正则表达式 通过设定有特殊意义的符号,描述符号和字符的重复行为及位置特征来表示一类特定规则的字符串 2、正则表达式的匹配原则 【1】正确性 能够正确匹配目标字符串 【2】唯一性 除了匹配的目标内容,尽可能不会有不需要的内容 【3】全面性 对目标字符串可能的情况要考虑全面不漏 3、re模块 处理正
阅读全文
摘要:1、原始字符串 raw 字符串 【特点】对字符串中的内容不进行转义(让转义符号 \ 无效),即表达原始含义 e.g:r"\b" > \b "\\b" > \b In [5]: import re In [6]: re.findall("\\w+@\\w+\\.cn","axs@zhongguo.cn
阅读全文
摘要:【thread-tcp-socket-server.py】from socket import * import os,sys from threading import * HOST = "0.0.0.0" PORT = 8888 ADDR = (HOST,PORT) #客户端处理函数 def h
阅读全文
摘要:1、threading模块完成多线程并发 2、对比多进程并发 【优势】资源消耗少 【缺点】需要注意对共享资源的操作 3、实现步骤 【1】创建套接字,绑定,监听 【2】接收客户端连接请求,创建新的线程 【3】主线程继续等待其他客户端连接,分支线程执行客户端具体请求 【4】处理完客户端请求后分支线程自然
阅读全文
摘要:https://docs.python.org/zh-cn/3/library/socketserver.html#module-socketserver 1、socket并发集成模块 【python2】 SocketServer 【python3】 socketserver 【功能】通过模块提供的
阅读全文
摘要:1、服务器分类 【1】硬件服务器 主机、 集群 主要生产厂商 : IBM 、HP、 联想、 浪潮 【2】软件服务器 编写的服务端程序,依托硬件服务器运行。 提供给用户一定的功能服务 2、软件服务器分类 【1】webserver > 网络的后端应用程序,提供数据处理和逻辑处理 【2】httpserve
阅读全文
摘要:1、项目功能 【客户端】 客户端有简单的页面命令提示 ,功能包含 【1】查看服务器文件库中的文件列表(普通文件) 【2】可以下载其中的某个文件到本地 【3】可以上传客户端文件到服务器文件库 【服务端】 服务器需求 【1】允许多个客户端同时操作 【2】每个客户端可能回连续发送命令 2、技术分析 【1】
阅读全文
摘要:使用fork完成并发 【1】 创建套接字,绑定,监听 【2】 等待接受客户端连接请求 【3】创建新的进程处理客户端请求,父进程继续等待连接其他客户端 【4】 客户端退出对应子进程结束 【osfork-server.py】from socket import * import os,sys impor
阅读全文
摘要:1、进程和线程的区别和联系 【1】两者都是多任务编程的方式,都能够使用计算机的多核 【2】进程的创建删除要比线程消耗更多的计算机资源 【3】进程空间独立,数据安全性好,有专门的进程间通信方法 【4】线程使用全局变量通信,更加简单,但是需要同步互斥操作 【5】一个进程可以包含多个线程,线程共享进程的空
阅读全文
摘要:线程锁 1、创建线程对象 lock = threading.Lock() 2、上锁 lock.acquire() 3、解锁 lock.release() with lock 上锁 import threading a = b = 0 lock = threading.Lock() def value
阅读全文
摘要:from threading import Thread from time import sleep a = 1 def foo(): global a a = 1000 def bar(): sleep(1) print("a = ",a) t1 = Thread(target = foo) t
阅读全文
摘要:事件Event 1、创建线程对象 e = threading.Event() 2、事件阻塞函数 e.wait([timeout]) 3、设置事件 e.set() 4、清除事件 e.clear() import threading from time import sleep #共享资源 s = No
阅读全文
摘要:【1】创建父子进程分别表示司机和售票员 【2】当售票员捕捉到SIGINT信号时,给司机发送SIGUSER1信号 此时司机打印 "老司机开车了" 【3】当售票员捕捉到SIGQUIT信号时,给司机发送SIGUSER2信号。 此时司机打印 "车速有点快,系好安全带" 【4】当司机捕捉到SIGTSTP信号时
阅读全文
摘要:创建自己的线程类 【1】继承 Thread 【2】加载父类 __init__ 【3】重写run 【mythread.py】from threading import Thread from time import sleep,ctime class MyThread(Thread): def __i
阅读全文
摘要:1、创建线程对象 t = threading.Thread() 功能 : 创建线程对象 参数 : target, 线程函数 name ,线程名称, 默认Thread-1 args, 元组, 给线程函数位置传参 kwargs, 字典, 给线程函数键值传参 返回 : 线程对象 2、启动线程 t.star
阅读全文
摘要:1、什么是线程 (thread) 线程也是一种多任务编程方式,可以使用计算机的多核资源。线程被称为轻量级的进程。 2、线程特征: 【1】一个进程可以包含多个线程 【2】线程是计算机内核使用的最小单位 【3】线程也是一个运行过程,也要消耗计算机资源 【4】多个线程共享共用进程的资源 【5】线程也有自己
阅读全文
摘要:from multiprocessing import Event 1、创建事件对象 e = Event() 2、事件阻塞 e.wait([timeout]) 功能 : 使进程处于阻塞状态,直到事件对象被set 3、事件设置 e.set() 功能 : 让事件对象变为被设置状态 4、清除设置 e.cl
阅读全文
摘要:1、同步 同步是一种合作关系,为完成某个任务,多进程或者多线程之间形成一种协调,按照约定执行,相互告知,共同完成任务。 2、 互斥 互斥是一种制约关系,当一个进程或者线程进入临界区操作资源时采用上锁的方式,阻止其他进程操作。直到解锁后才会让出资源。 3、同步互斥目的 解决对共有资源产生的资源争夺 4
阅读全文
摘要:1、创建对象 lock = Lock() 2、lock.acquire() 上锁 3、lock.release() 解锁 #如果一个锁对象已经被上锁则再调用acquire会阻塞 4、with lock : 上锁 .... .... 解锁 【上锁+解锁】from multiprocessing imp
阅读全文
摘要:1、信号量 给定一定的数量的信号量,对多个进程可见,并且多个进程根据信号量多少确定不同的行为 2、sem = Semaphore(num) 功能 : 创建信号量对象 参数 : 信号量的初始值 返回 : 信号量对象 3、sem.acquire() 将信号量数量减1 ,当数量为0则阻塞 4、sem.re
阅读全文
摘要:1、程序的同步执行和异步执行 【1】同步 程序按照步骤一步一步执行,呈现一个先后性和顺序性 【2】异步 程序在执行中利用内核功能帮助完成必要的辅助操作,不影响应用层持续执行 2、异步通信 signal 详见:https://www.cnblogs.com/longyuu/p/14250543.htm
阅读全文
摘要:https://docs.python.org/zh-cn/3/library/signal.html#module-signal signal 设置异步事件处理程序 1、信号 【1】 一个进程向另外一个进程通过信号的方式传递某种讯息。 【2】接收方在接收到信号后作出相应的处理。 2、信号名称 系统
阅读全文
摘要:使用父子进程复制一个文件,分别复制文件的上半部分和下半部分到一个新的文件中,以字节区分 【copyFile-half.py】import os from multiprocessing import Process from time import sleep #获取文件的大小 size = os.
阅读全文
摘要:创建自定义进程类 【1】 编写类继承Process 【2】 在自定义类中加载父类__init__以获取父类属性,同时可以自定义新的属性 【3】重写run方法,在调用start时自动执行该方法 from multiprocessing import Process import time class
阅读全文
摘要:1、共享内存 【1】在内存中开辟一段空间,存储数据,对过个进程可见。 【2】每次写入共享内存中的内容都会覆盖之前的内容。 【3】对内存的读操作页不会改变内存中的内容 from multiprocessing import Process,Value 2、开辟共享内存空间 shm = Value(ct
阅读全文
摘要:1、队列 【1】在内存中开辟队列结构空间,对多个进程可见。多个进程操作同一个队列对象可以实现消息的存取工作。 【2】先进先出 2、创建队列 q = Queue(maxsize = 0) 功能 : 创建队列对象 参数 : maxsize,默认表示系统自动分配队列空间 如果传入正整数则表示最多存放多少条
阅读全文
摘要:1、管道通信 在内存中开辟一块空间,形成管道结构,多个进程使用同一个管道,即可通过对管道的读写操作进行通信 from multiprocessing import Pipe 2、创建管道对象 fd1,fd2 = Pipe(duplex = True) 功能: 创建管道 参数:默认表示双向管道 如果设
阅读全文
摘要:进程池--multiprocessing模块的Pool方法 1、进程池技术 产生原因 : 如果有大量的任务需要多进程完成,而任务周期又比较短且需要频繁创建。 此时可能产生大量进程频繁创建销毁的情况,消耗计算机资源较大。 2、使用方法 【1】创建进程池,在池内放入适当数量的进程 【2】将事件封装函数,
阅读全文
摘要:【ipython错误】 Traceback (most recent call last): File "<string>", line 1, in <module> File "d:\software\python\lib\multiprocessing\spawn.py", line 105,
阅读全文
摘要:Windows下面的multiprocessing跟Linux下面略有不同,Linux下面的multiprocessing基于fork,fork之后所有的本地变量都复制一份,因此可以使用任意的全局变量; 在Windows下面,多进程是通过启动新进程完成的,所有的全局变量都是重新初始化的,在运行过程中
阅读全文
摘要:https://docs.python.org/zh-cn/3/library/multiprocessing.html#module-multiprocessing multiprocessing 基于进程的并行 1、multiprocessing 模块创建进程概述 【1】需要将要做的事情封装成函
阅读全文
摘要:简单的群聊聊天室 1、功能 类似于qq群聊 【1】进入聊天室需要输入姓名, 姓名不能重复 【2】有人进入聊天室此时会向其他人发起通知 ,xxx 进入了聊天室 【3】如果一个人发消息,则其他人都能收到 ,xxx 说 : xxxxxxx 【4】如果某个人退出聊天室其他人也会收到通知, xxx 退出了聊天
阅读全文
摘要:1、程序 是一个可执行文件,是静态的,占有磁盘,不占计算机的运行资源 2、进程 【1】程序在计算机中的一次执行过程 【2】进程是一个动态的过程,占有计算机资源,有一定的生命周期 【注】同一个程序不同的运行过程是不同的进程。因为分配的资源和生命周期都不相同 3、进程特征 【1】进程是操作系统分配资源的
阅读全文
摘要:os.fork()创建进程不能用于Windows python在Windows上的os模块,没有fork方法,所以不能用os.fork()来创建进程 在 VxWorks 系统上,也不支持os.fork() windows下进程创建使用multiprocessing模块。 【windows】In [4
阅读全文
摘要:1、多任务编程 通过程序利用计算机的多个核心达到同时执行多个任务的目的。以此达到提升程序运行效率的目的。 【1】意义 充分利用计算机资源,同时运行多个任务,提高程序整体的运行效率 【2】实现方案 ① 多进程编程 ② 多线程编程 2、并行 多个计算机核心在同时处理多个任务,这时多个任务 之间是并行关系
阅读全文
摘要:1、ps -aux ① 查看系统进程信息,linux终端下执行此命令 ② STAT列表示进程状态 D 等待态 ,阻塞 ,不可中断等待态 S 等待态 ,睡眠 ,可中断等待态 T 等待态, 暂停, 暂停执行 R 运行态(就绪态) Z 僵尸 + 前台进程 (在终端运行) < 有较高优先级的进程 N 较低优
阅读全文
摘要:select服务端,同时关注客户端连接,客户端发送和终端输入。将客户端发送和终端输入的内容全都写入到一个文件中 【linux中】 【tcp-file-io-select-server.py】from select import select import sys s = socket() s.bin
阅读全文
摘要:from socket import * s = socket() #设置端口可立即重用 s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
阅读全文
摘要:1、本地套接字: 用于本地进程间通信 2、本地套接字传输流程 【1】 创建套接字对象 sockfd = socket(AF_UNIX,SOCK_STREAM) 【2】 绑定套接字文件,如果文件不存在则自动创建 sockfd.bind(file) 套接字文件:下面连接中的套接字文件就是下面代码运行后生
阅读全文
摘要:1、套接字 进程通信的接口。 可以看做对 TCP/IP协议的封装。 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式, 它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket
阅读全文
摘要:文件描述符fd(file descriptor) Socket起源于unix,Unix中一切皆文件,包括设备,比如网卡、打印机等等,所以,针对Socket通信,我们在使用网卡,网卡又处理N多链接,每个链接都需要 一个对应的描述,也就是惟一的ID,即对应的文件描述符。即 : In [40]: from
阅读全文
摘要:1、linux下文件类型 b(块设备文件) c(字符设备文件) d(目录) -(普通文件) l(链接文件) s(套接字文件) p(管道文件) 在终端下,用 ll 命令查看,第一位表示文件类型 Lub@linuxU :~/桌面$ ll 总用量 88 drwxr-xr-x 2 aaa bbb 4096
阅读全文
摘要:1、IO input output,IO就是输入输出 在内存中存在数据交换的操作可以认为是IO操作(输入输出) eg: 【1】内存和磁盘进行数据交换: 文件的读写, 数据库更新 【2】内存和终端数据交换 : input 、print sys.stdin、 sys.stdout、 sys.stderr
阅读全文
摘要:1、位运算 程序中所有的数据在计算机中都是以二进制存储的,位运算就是对二进制位进行操作。 可与1进行按位与操作,判断奇偶数。1奇 0偶 按照二进制位进行运算操作 【1】& 按位与 【2】| 按位或 【3】^ 按位异或 【4】<< 左移,右侧补0 【5】>> 右移,挤掉右侧的数字 eg: 先将十进制数
阅读全文
摘要:一个文本文件(图片)在服务端和客户端之间的传输 要求使用tcp套接字 【发送端】 from socket import * from time import sleep s = socket() s.bind(('0.0.0.0',8888)) s.listen(5) c,addr = s.acce
阅读全文
摘要:1、多路复用的实现 https://docs.python.org/zh-cn/3/library/select.html#module-select 用 select模块,select模块在Windows下只有select方法。 linux下有select、poll方法和epoll,epoll是s
阅读全文
摘要:【1】接收http请求 【2】查看http请求 【3】返回一个网页给客户端 【server端】from socket import * # 接收请求 # 查看请求 # 返回客户端段请求内容 def handleClient(connfd): request = connfd.recv(4096) #
阅读全文
摘要:1、http协议 超文本传输协议 2、用途 网站中浏览器获取网页 3、特点 【1】 属于应用层协议,传输层使用tcp服务 【2】 简单,灵活,可以使用多种编程语言操作 【3】 无状态的协议,即不记录用户的输入内容 【4】 http1.1 > http2.0 技术成熟度和稳定性 4、http请求(re
阅读全文
摘要:数据包套接字:传输层基于UDP协议的通信 应用: 广播(broadcast) 一点发送多点接收 接听端只需监听发送端的端口就可以了 【发送广播】from socket import * from time import sleep #设置广播地址 "<broadcast>" dest = ('192
阅读全文
摘要:模拟通信,进行消息的收发 【1】初版server端 from socket import * print("服务器已启动") HOST = '0.0.0.0' PORT = 8888 ADDR = (HOST, PORT) # 创建套接字 sock = socket(AF_INET, SOCK_DG
阅读全文
摘要:1、模拟通信,进行消息收发 【1】初版server端【一】 from socket import * # 1、创建套接字对象 sock = socket(family = AF_INET,type = SOCK_STREAM,proto = 0) # 2、绑定地址 sock.bind(("127.0
阅读全文
摘要:Python 标准库 Python语言参考 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。它还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含
阅读全文
摘要:一、TCP协议 面向连接的传输服务协议。 【1】特点:可靠的数据传输 【2】可靠性 : 数据在传输中,无失序 无差错 无丢失 无重复 【3】在数据传输前和传输结束后需要建立连接和断开连接 1、三次握手 :在面向连接的传输服务中建立连接的过程 【1】 客户端向服务器发送连接请求 【2】 服务器接受到请
阅读全文
摘要:1、OSI七层模型 网络通信的标准化流程 应用层:提供用户服务。具体服务有具体程序决定。 表示层:数据的加密、压缩和优化。 会话层:确立连接,选择传输服务。 传输层:提供传输服务,流量控制。 网络层:路由选择,网络互连。 链路层:链路选择,具体消息的发送。 物理层:硬件、接口、网卡的规定。 优点:将
阅读全文
摘要:1、IP地址 网络上确定一台主机的地址 IPv4: 点分十进制 比如 192.168.1.3 0--255 IPv6 128位 2、网络连接测试 ping xxx.xxx.xxx.xxx # xxx.xxx.xxx.xxx 指具体的IP地址 特殊IP 127.0.0.1 本地测试IP 0.0.0.0
阅读全文
摘要:Python 标准库 Python语言参考 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。它还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含
阅读全文
摘要:Python 标准库 Python语言参考 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。它还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含
阅读全文
摘要:Python 标准库 Python语言参考 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。它还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含
阅读全文

浙公网安备 33010602011771号