欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

程序员文章站 2022-06-11 16:15:26
Process类参数介绍 私信小编007 即可获取数十套PDF哦! 进程之间不共享全局变量 创建子进程其实就是对主进程资源的拷贝 主进程会等待所有的子进程执行完成程序再退出 总结: 主进程会等待所有的子进程执行完成程序再退出 获取进程pid 进程间通信——Queue 可以使用multiprocess ......
史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

Process类参数介绍

私信小编007 即可获取数十套PDF哦!

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

进程之间不共享全局变量

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

创建子进程其实就是对主进程资源的拷贝

主进程会等待所有的子进程执行完成程序再退出

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

总结: 主进程会等待所有的子进程执行完成程序再退出

获取进程pid

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

运行结果:当前进程编号: 624我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...work进程编号: 1312work父进程编号: 624工作中...工作中...工作中...工作中...工作中...工作中...工作中...工作中...工作中...工作中...我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...我在主进程中执行...***Repl Closed***

进程间通信——Queue

可以使用multiprocessing模块Queue实现多进程之间的数据传递,Queue本身是一个消息队列程序

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

消息队列Queue完成进程间通信的演练

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

进程池Pool

进程池的概念

池子里面放的是进程,进程池会根据任务执行情况自动创建进程,而且尽量少创建进程,合理利用进程池中的进程完成多任务

当需要创建的子进程数量不多时,可以直接利用multiprocess中的Process动态生成多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocess模块提供的Pool方法。

初始化Pool时,可以指定一个最大进程数,当有新的请求提到Pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求,但如果池中的进程数已经达到指定的最大值,那么该请求就会等待,直到池中有进程结束,才会用之前的进程来执行新的任务。

进程池同步执行任务

进程池同步执行任务表示进程池中的进程在执行任务的时候一个执行完成另外一个才能执行,如果没有执行完会等待上一个进程执行

进程池同步实例代码

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

进程池异步执行任务

进程池异步执行任务表示进程池中的进程同时执行任务,进程之间不会等待

进程池异步实例代码

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

运行结果:复制中... 1848复制中... 12684复制中... 12684复制中... 6836复制中... 6836***Repl Closed***

协程的概念

协程,又称微线程,纤程,也称用户级线程,在不开辟线程的基础上实现多任务,也就是在单线程的情况下完成多任务,多个任务按照一定顺序交替执行的,通俗理解只要在def里面只看到一个yield关键字表示就是协程

协程也是实现多任务的一种方式

协程yield的代码实现

简单实现协程

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

实现协程的第二种方式:greenlet

greenlet介绍:为了更好使用协程来完成多任务,python中的greenlet模块对其封装,从而使得切换任务变得更加简单

首先使用pip安装greenlet模块:

pip3 install greenlet

greenlet的使用:

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

IP、UDP

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

UDP

概念:英文全拼(User Datagram Protocol)简称用户数据报协议,它是无连接的、不可靠的网络传输协议

面向无连接型:无需确认对端是否存在,发送端可随时发送数据(udp网络传输协议好比现实生活中写信)

UDP特点:

无连接、资源开销小、传输速度快、UDP每个数据包最大是64K

UDP优点:

传输速度快

不需要连接,资源开销小

UDP缺点:

传输数据不可靠,容易丢失数据包

没有流量控制,当对方没有及时接收数据,发送方一直发送数据会导致缓冲区数据满了,电脑出现卡死情况,所以接收方需要及时接收数据

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

创建socket 发送数据

在Python中使用socket模块的函数socket

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

创建socket 接收数据

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

udp绑定端口号

udp 绑定信息:一般情况下,在一台电脑上运行的网络程序有很多,为了不与其他的网络程序占用同一个端口号,往往在编程中,udp的端口号一般不绑定

但是如果需要做成一个服务端的程序的话,是需要绑定的

绑定端口号:

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

UDP 发送广播消息

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

udp 聊天器

需求:

在一个电脑中编写一个程序,有两个功能

1.获取键盘数据,并将其发送给对方

2.接受数据并显示

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!

 

进群:125240963   即可获取数十套PDF哦!

史上最全面的Python网络编程——进程,协程 IP、UDP教程合集!