基于udp协议的套接字通信,接收端每次接收报头,不会出现粘包,并且用户端直接发送回车时不会出现报错,因为发回车会自动带报头发送,回复到的是b" "
在看起来同时运行的就是并发,udp就是并发,但是当用户过多时会出现需要等待缓慢的情况,同一时间客户发送的消息时到服务器操作系统缓存中,因为没有连接的通道,所以也就没有半连接池的概念,一次最大是512字节,不适合大文件的传输.udp协议可以在用户每发送一次都完完整整的接收,如果不是很重要的信息传送可以用UDP,
如果短时间一起传输多个内容,也只会每次只接收对应的次数,如果传输的内容大于接收的字节时在windows是报错,但是在其他的系统时有几个就接收几个,其他的漏包
基于socketserver实现并发
Threading TCPServer((“127.0.0.1”,8080),类,绑定激活) #现成
server_forever() #循环建立连接,每建立一个连接就会启动一个线程,专门与刚建好的连接做通信循环.
类里面要继承Base功能,函数必须要handle, client_address 客户端IP, request 之前conn建立好链接
什么是进程
进程指的就是一个正在运行的程序,或者说是程序的运行过程,即进程是一个抽象的概念
进程是起源于操作系统的,是操作系统最核心的概念,操作系统所有其他的概念都是围绕进程展开的
多道技术
为何要进程
达到并发效果
如何用进程
开启进程的两种方式
1、 串行:
一个任务完完整整地运行完毕后,才能运行下一个任务
2、 并发
看起来多个任务时同时运行的即可,单核也可以实现并发
3、 并行
真正意义上多个任务的同时运行,只有多核才实现并行
4、 cpu的功能
cpu是用来做计算,cpu是无法执行IO操作的(IO操作指输入、输出设备),一旦遇到io操作,应该让cpu去执行别的任务
5、 多道技术
1、 空间上的复用=>多个进程共同一个内存条
2、 时间上的复用=>多个进程复用同一个cpu的时间
a) Cpu遇到的IO切换:可以提升效率
b) 一个进程占用cpu时间过程也会切走:为了实现并发效果不得已而为之,反而会降低程序的执行效率
一个应用程序效率高的方式就是减少与硬盘打交道,较少IO(即输入输出设备)