随笔分类 - Python
摘要:进程池: 每一个进程在启动一个子进程时都会克隆一分数据,并开启额外一份内存空间,如果多次开启子进程,对内存的开销比较大,这里可以通过进程池来控制进程的最大个数,来解决。 进程池中有两个方法: apply #串行 apply_async #并行 回调callback: 可以启动10台机器批量进行数据库
阅读全文
摘要:进程间通信:进程之间必须需要中间件。 进程间通信:进程之间必须需要中间件。 不同进程间内存是不共享的,要想实现两个进程间的数据交换 Queues:实现传输两个进程的数据 线程queue,访问数据只能在一个进程内进行线程与线程之间的访问。 进程queue,可以作为一个中间键来实现两个进程的数据交互,q
阅读全文
摘要:需求: 在有多线程的情况下,我们可以使用线程帮我们处理一些事情,但是在python这里 由于RSA锁的缘故,我们只能够用到一个cpu帮我们处理事情,一个cpu在处理多个线程时,是通过上下文的切换使我们产生幻觉,感觉他同时在处理多个线程,但是在这里cpu在进行上下问的切换也是要消耗cpu。cpu是处理
阅读全文
摘要:作用: 作用: 解耦:使程序直接实现松耦合,修改一个函数,不会有串联关系。 提高处理效率:FIFO = 现进先出,LIFO = 后入先出。 队列: 队列可以并发的派多个线程,对排列的线程处理,并切每个需要处理线程只需要将请求的数据放入队列容器的内存中,线程不需要等待,当排列完毕处理完数据后,线程在准
阅读全文
摘要:Events不同线程之间同步对象 参数说明: # 实例化event对象 event = threading.Event() # 等待检测标志位被设定,标志位设置后就不阻塞了 # 客户机线程可以等待设置标志 event.wait() # 设置一个全局变量标志位True event.set() # 清空
阅读全文
摘要:Semaphore信号量的使用 Semaphore信号量的使用 信号量: 互斥锁 同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据 ,比如厕所有3个坑,那最多只允许3个人上厕所,后面的人只能等里面有人出来了才能再进去。 使用场景: mysql连接池,线程池。可以在同一
阅读全文
摘要:互斥锁Mutex的使用 互斥锁Mutex的使用 多个线程处理共享数据,数据会出现问题: 2.7之前每100指令切换一次GIL锁,线程就会sleep,线程会把前100条处理指令存放在CPU缓存内,切换GIL锁后放入另外一个线程再次处理同一条共享数据,如果我这条共享数据需要101条指令才能处理完,那么这
阅读全文
摘要:递归锁: 递归锁: 互斥锁如果嵌套了多个锁之后,会将自己锁死永远都出不来了。 这个时候可以使用递归锁,它相当于一个字典,记录了锁的门与锁的对应值,当开门的时候会根据对应来开锁。 import threading # run1第二道锁 def run1(): print("grab the first
阅读全文
摘要:GIL全局解释器锁:为了解决多线程修改同一块数据。 GIL全局解释器锁:为了解决多线程修改同一块数据。 python的线程是调用操作系统的源生线程,启动时就是调用C语言的C源生接口,python调用C语言接口的线程去执行任务时,必须上下文对应关系传给CPU处理。 CPU处理python: 通过上下文
阅读全文
摘要:简介: Python 线程可以通过主线程,调用线程来执行其他命令, 为Python提供更方便的使用。 简介: Python 线程可以通过主线程,调用线程来执行其他命令, 为Python提供更方便的使用。 并发线程测试 并发线程测试 # 命令调用方式 import threading,time # 定
阅读全文
摘要:描述:进程与线程 描述:进程与线程 线程: 就是操作系统能够运算的最小单位。 线程就是一串指令的集合,它被包含在进程之中,是进程中的实际运作单位,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 进程: 每一个程序的内存是独立的,每一个程序都要以一个
阅读全文
摘要:简介: 简介: paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密 和认证的方式,进行远程服务器的连接。由于使用的是python这样的能够跨 平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, Mac OS X, Windows等,
阅读全文
摘要:SocketServer功能:实现并发处理,就是将socket在封装,使得遍的更简单。 SocketServer功能:实现并发处理,就是将socket在封装,使得遍的更简单。 类型: #TCPserver:TCP的socketserver。 class socketserver.TCPServer(
阅读全文
摘要:soket_server soket_client
阅读全文
摘要:socket粘包: socket 交互send时,连续处理多个send时会出现粘包,soket会把两条send作为一条send强制发送,会粘在一起。 send发送会根据recv定义的数值发送一个固定的数值,如果最后一次,所剩的数值小于recv定义数就会连带两条send数据同时发送,发生粘包状况。 解
阅读全文
摘要:通过socket连续接收返回数据 Server服务端 Clinet客户端 #recv接收数据后,会先存到缓冲区,缓冲区满了之后会自动send。 #手动send是超时强制向客户端发送数据,不会等待recv填满缓冲区时自动发。 #send发送数据 中文字符=3字节 英文=1字节 缓冲区会多发送len()
阅读全文
摘要:注:第一种方法不能连续导入目录文件,第二种可以连带导入。
阅读全文
摘要:assert断言:指定某个对象判断类型,不成立则报错。 使用环境 :接下来程序的执行,如果依赖前面的类型,不能报错的情况下使用。 if语句也可以实现类似功能
阅读全文
摘要:实现处理多个连接 使用whlie循环实现多个客户端,排队请求服务端 循环监听端口发送信息(windos,Linux) 1.Linux 系统如果客户端断开连接,会循环打印 2.Windos 系统如果客户端断开连接,会报错中断 3.案例:在linux系统下实现 4.需求:可以实现单个用户断开,并同过排队
阅读全文
摘要:Python 2.0 客户端服务端传输 1.可发字符串,可发字节 bys类型 Python 3.0 客户端服务端传输 1.只能发bys,比特流的类型。 2.bys类型只能接收 ASCLL码里的数据类型。 3.如果想传入中文: 简单的soket链接例子 需求:服务端帮客户端处理字符串信息为大写 客户端
阅读全文