随笔分类 - python
摘要:开发一个可以多个用户在线的FTP程序 要求: 配置: 服务端: seeting: 用户配置文件: 1 import os 2 import json 3 import struct 4 import configparser 5 import subprocess 6 import re 7 imp
阅读全文
摘要:这个模块帮你做了很多socket的操作,比如建立连接,监听,绑定,多线程或多进程,很方便 服务端: 客户端:这里用了多线程进行测试
阅读全文
摘要:一、概述 协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的 可以理解为:只用一个主线程(可利用的cpu只有一个),通过用户手动进行调整检测IO进行切换,使得cpu效率最大化 注意: 1. pyth
阅读全文
摘要:2、线程池 3、map的用法 4、回调函数 什么是回调函数:可以为进程池或线程池里的每一个进程或现场绑定一个函数,该函数在进程或线程任务执行完毕后自动触发,并接受任务的返回值当做参数,该函数成为回调函数 可以理解为:进程或线程执行完返回结果后再在外面进行调用函数进行处理
阅读全文
摘要:线程中的队列有三种: 1、queue.Queue(maxsize) 先进先出 2、queue.IifoQueue(maxsize) 堆栈 先进后出 3、queue.PriorityQueue(maxsize) 优先级队列,存储数据时可以设置优先级的队列 1、先进先出 结果: 2、先进后出 结果: 3
阅读全文
摘要:一、Semaphore Semaphore管理一个内置的计数器,每当调用acquire()时内置计数器-1; 调用release() 时内置计数器+1; 计数器不能小于0;当计数器为0时,acquire()将阻塞线程直到其他线程调用release()。 二、Event Event实例化对象的一些方法
阅读全文
摘要:互斥锁只能一次acquire 然后releae ,不能进行多次acquire容易出现死锁,递归锁就可以多次acquire 递归锁:递归锁可以多次进行acquire,每进行一次acquire,寄存器的基数就加1,一直等到基数变成0的时候才能被其他线程拿到
阅读全文
摘要:1、线程是在进程里面控制工作的 2、同一进程里的线程的进程id是一样的 3、同一进程里的线程的内存空间是共享的 4、线程是在已有的进程里进行开启的,所以开启线程开销较小,几乎一请求开启就会立即开启 一、开启线程的两种方法: from threading import Thread import ti
阅读全文
摘要:一、互斥锁: 那一个抢票的例子来说:一个文件中放一行数据为票的数量 {"number": 1 } 票数为1 结果:会发现所有的人都买到票了,但是票只有一张,多进程效率虽然高但是数据混乱不安全,所以这个互斥锁就是解决数据混乱不安全这个问题的 解决: 这里加上了互斥锁,舍弃效率保证了数据的安全性 结果:
阅读全文
摘要:什么是守护进程 举个例子:当我们现在有两个任务需要并发执行,一个主进程一个子进程分别进行处理就可以了,如果主进程任务处理完后,子进程任务没必存在了没必要再进行了,就可以使用守护进程 注意事项:1、守护进程会在主进程代码结束后进行终止 2、守护进程里面不能再开其他的子进程,不然会报错:Assertio
阅读全文
摘要:1.开启进程的两种方法 第一种: 结果: 第二种: 这里自己写类进行继承Process 二、查看进程ID号: 查看当前进程id:os.getpid() 查看该进程的父级进程id: os.ppid() 三、Process 中的 join方法 当主进程运行过程中如果想并发去处理其他的任务的时候,我们可以
阅读全文
摘要:一、套接字家族 1、AF_UNIX unix一切皆文件,基于文件的套接字调用的就是底层的文件系统来取数据,两个套接字进程运行在同一机器,可以通过访问同一个文件系统间接完成通信 2、AF_INET 用的比较官方,有些会用到AF_INET6 即ipv6 二、TCP协议与UDP协议 TCP协议,可靠的,面
阅读全文
摘要:该模块可完成拷贝文件以及文件权限、时间、状态信息、递归拷贝文件夹,递归删除文件等操作
阅读全文
摘要:这个可执行系统命令,与os模块不同的是可以返回其执行结果
阅读全文
摘要:这个模块是用来完成压缩文件以及解压的一些文件包的操作 1.压缩文件 2.解压文件包 3.压缩文件夹:这里需要借助os模块中的walk
阅读全文
摘要:该模块适用于配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值) 1.这个模块可以帮您写以下这种文件 实现方法如下: 2.增删改查
阅读全文
摘要:hashlib模块是一个加密模块,加密之后是不可逆的,无法返回成明文
阅读全文
摘要:1.捕获异常并写入日志 2.这里format中的一些格式化: asctime 时间,有默认的格式 name 操作的用户名 levename 日志的级名 module 所在模块名 message 日志等级的标志 level 定义级数 pathname 打印当前执行程序的路径 lineno 打印日志的当
阅读全文