随笔分类 - Python
摘要:# import time # from multiprocessing import Pool # # def func(i): # time.sleep(1) # return i * i # # # if __name__ == '__main__': # pool = Pool(4) # # for i in range(10): # re...
阅读全文
摘要:# 管道实现生产者消费者模型 # # 应该特别注意管道端点的正确管理问题,如果是生产者或消费者中都没有使用管道的端点就应该将它关闭 # 这也说明了为何在生产者中关闭了管道的输出端,在消费者中关闭管道的输入端。如果忘记执行这个步骤 # 程序可能在消费者中的recv()操作上挂起。管道是由操作系统进行引用计数的,必须在所有进程中关闭管道 # 后才能生成EoFEroor...
阅读全文
摘要:# 以后我们会尝试使用数据库类解决现在进程之间的数据共享问题 # multiprocessing.Manager模块,是数据共享用的模块,共享的数据存在数据不安全问题,需要加锁操作 # from multiprocessing import Manager, Process # # # def process1(dic): # dic['count'] = 5 # pri...
阅读全文
摘要:# 管道 # 一根管子,双向通信,拿到管道的两端,一端传输的数据会传输到另一端 # from multiprocessing import Pipe,Process # # # # # # def func(conn): # # while True: # # print(conn.recv()) # 当管道没有数据时,接收这里会阻塞住 # # # # #...
阅读全文
摘要:# 多进程的生产者消费者模型 # 队列 # 队列是进程安全的,同时只能有一个进程从队列中取到数据 # 生产者消费者模型 # 为什么要这个模型 # 这个模型经常性的解决数据的供需不平衡的问题 # 经常有两拨人,一拨是生产数据的,一拨是消费数据的。 # 消费者指的是使用数据处理数据的一端 # 生产数据的一端生产的数据过快 ...
阅读全文
摘要:# 可控制 多个进程 同时 执行或阻塞 # 事件 # set 和 clear # 分别用来修改一个事件的状态,True或者False,True表示设置为非阻塞,False表示设置为阻塞 # is_set 查看一个事件的状态 # wait 根据事件状态来决定自己是否阻塞 # from multiprocessing import Event # 导...
阅读全文
摘要:# 多进程中的组件 # 信号量 # 举例说概念:现在有4个门,只能进4个人。一套资源同一时间只能被N个人访问。这里将N个人比作N个进程,一套资源这里比作代码 # 某一段代码 同一时间只能被N个进程执行 # 有一个房子,房子就是要保护的代码(限定进程访问的代码),房子只有一个门,门上有一串钥匙,有多少把钥匙是你规定的,此时当有一个进...
阅读全文
摘要:# 进程锁 # 多个进程都操作一个数据时(下面指的是文件)、会存在数据安全问题,则需要加入锁 # 先说一个现象 # 买火车票 # 当我们手机软件买票时,发现有余票20张,但是点击订票后,告诉你票订光了 # 这是因为买票时,肯定是一个并发的过程,好多人同时来买票,并发的过程 # 当一个人订票后,我们后台肯定要修改票数,肯定是修改数据...
阅读全文
摘要:# 守护进程 # 子进程转换成的守护进程 # 守护进程会随着主进程的代码执行完毕而结束 # 下面的例子,当主进程执行结束了,但子进程还在执行,子进程没有结束 # import time # from multiprocessing import Process # # # def func(): # while True: # time.sleep(0....
阅读全文
摘要:2.开启多个进程的方法 3.使用自定义类继承Process类,重写run方法和init方法进行启动进程的方法 4.进程与进程之间数据隔离问题,进程与进程之间数据是隔离的,想要互相交互数据需要通过其他手段(管道,后面再说) 5.使用多进程实现socket服务端的并发,只为了演示多进程,当客户端多时,会
阅读全文
摘要:1.利用struct模块,可以一定程度上解决黏包问题 认识struct 2.利用struct模块,实现大文件上传 server.py client.py
阅读全文
摘要:1.先说下subprocess模块的用法,为了举个黏包的例子 2.写一个tcp的server端和client,模拟黏包的现象,tcp端发送windows的命令给client,client接收后执行该命令后,将控制台返回的内容传输到server端 tcpserver.py tcpclient.py 3
阅读全文
摘要:1.udp例子1 udpserver.py udpclient1.py ucpclient2.py 2.简单udp时间服务器例子 udpserver.py udpclient.py
阅读全文