摘要: Python 多线程GIL问题(GIL全局解释器): 由于python解释器自身设计的需求,只能允许一个线程进行工作,无论你开启多少个线程,python在执行任务的时候在同一时刻只能允许一个线程允许。 应为GIL的问题,多个线程同一时刻只能有一个执行权限,多个线程会争取这个执行权限,造成多个线程来回 阅读全文
posted @ 2021-01-09 14:13 leungqingyun 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 并发:指的是系统具有执行多个任务(动作)的能力 并行:指的是系统具有同时执行多个任务(动作)的能力, 也就是同一时刻执行多个任务。(同一时刻) 同步:当执行一个IO操作的时候(等待一个外部数据的时候),等待 异步:当执行一个IO操作的时候(等待一个外部数据的时候),不等待,继续执行其他,直到接收到外 阅读全文
posted @ 2021-01-09 11:21 leungqingyun 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 自定义类,继承 Thread,重写 run()方法 import threading import time class MyThread(threading.Thread): def __init__(self,thread_name): threading.Thread.__init__(sel 阅读全文
posted @ 2021-01-08 23:04 leungqingyun 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 进程 Progress: 本质上就是一段程序运行的过程 线程 Thread: 线程是进程里面的执行单元 1. 线程的基本调用 import threading import time def hi_thread(i): time.sleep(3) print('thread %s'%i) if __ 阅读全文
posted @ 2021-01-08 22:59 leungqingyun 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 基于socket搭建的 FTP文件上传功能模块 1. 用户账号密码验证功能 2. 断点续传功能 3. 文件目录切换功能 4. MD5加密功能 使用方法 1. 服务端Terminal 输入 python ftp_server.py start 启动服务端 2. 客户端使用 Terminal 输入 py 阅读全文
posted @ 2021-01-06 15:34 leungqingyun 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 客户端验证的合法性 server: import socketserver import os, hmac class MyServer(socketserver.BaseRequestHandler): secret_key=b'abcdefg' def handle(self): # 重写han 阅读全文
posted @ 2021-01-02 21:50 leungqingyun 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 实现socket并发 使用 socketserver 客户端1 import socket tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tcp.connect(('localhost', 8081,)) while True: ms 阅读全文
posted @ 2020-12-31 23:11 leungqingyun 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 解决 粘包现象 所谓粘包现象: 当一端发生数据的容量大于另外一端一次接收容量,导致另外一端一次只能接受部分数据,其余剩下的数据将保存在缓存里面,当一端再次发送数据的时候,此时另外一端将先在缓存里面取上次剩下的部分数据后在来读取这次发送的数据, 这样就导致发送和接收的数据不一致。 解决方法: 采用先发 阅读全文
posted @ 2020-12-31 16:53 leungqingyun 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 基于客户端和服务端不间断通讯操作 client import socket phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) phone.connect(('localhost', 8081,)) while True: """ 客户 阅读全文
posted @ 2020-12-26 22:52 leungqingyun 阅读(54) 评论(0) 推荐(0) 编辑
摘要: server端程序 import socket # 1.建立基于TCP的网络类型socket phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 2.绑定server端IP地址和端口号 phone.bind(('localhost' 阅读全文
posted @ 2020-12-23 22:47 leungqingyun 阅读(35) 评论(0) 推荐(0) 编辑