摘要:
官方提供了socketserver包去方便我们快速的搭建一个服务器框架。 server类 socketserver包提供5个Server类,这些单独使用这些Server类都只能完成同步的操作,他是一个单线程的,不能同时处理各个客户端的请求,只能按照顺序依次处理。 + + | BaseServer | 阅读全文
摘要:
socket socket 通常被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过socket这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。 Python标准库提供了socket模块来实现这种网络通信。实例化一个socket类便能得到一个socket对象 阅读全文
摘要:
IO多路复用 O多路复用技术是使用一个可以同时监视多个IO阻塞的中间人去监视这些不同的IO对象,这些被监视的任何一个或多个IO对象有消息返回,都将会触发这个中间人将这些有消息IO对象返回,以供获取他们的消息。 使用IO多路复用的优点在于进程在单线程的情况下同样可以同时处理多个IO阻塞。与传统的多线程 阅读全文
摘要:
TCP是一种可靠的,发送和接收方双方面向连接的数据传输控制协议。保证了数据传输的可靠性是可控的。避免在传送过程中发生丢包后接收方数据缺失。实现了这种可靠性的方式是:发送方将每一个数据包按序编号进行发送,接收方在每收到一个包,便向发送方发送对应的确认接收的ack应答包,发送包通过接收该ack应答来确定 阅读全文
摘要:
OSI参考模型 OSI:开放式系统互联参考模型。该模型定义了不同计算机互联标准,是设计和描述计算机网络通信的基本框架。OSI模型将网络通信的工作分为七层 物理层:解决电信号的传输问题,定义电器规范,设备规范,物理接口等,研究对象为比特位,为两端设备提供原始比特流的传输通路。设备:集线器,网线,HUB 阅读全文
摘要:
concurrent.futures模块 由于频繁的创建线程或者进程是一件较为繁琐的操作,且浪费时间和资源。于是Python提供了线程池和进程池的模块。我们只需要将要执行的任务提交给池对象,池会自动创建线程或是进程对象异步执行这些任务,最后拿到返回结果。这些池中的进程和线程创建后不会立即自动销毁,而 阅读全文
摘要:
GIL全局解释器锁 GIL即python全局解释器锁,这是一个存在于解释器进程中的锁,该锁的存在造成了即使是多核cpu,在同一个python进程中,只会有一个线程被调度。如果想同时使用多核的优势,就需要使用多个进程来全面利用cpu。 IO密集型和计算密集型 IO密集型 IO密集型是指程序中有大量的I 阅读全文
摘要:
Event Event事件,实现简单的线程间的通信机制。内部使用一个flag标记,通过flag标记标记True或者False来判断是否达到了满足的条件,从而选择不同的操作。 import threading event = threading.Event() # 创建一个event对象 # do s 阅读全文
摘要:
当我们完成一个完整的项目,需要该项目文件中打包成分发包共享给他人或者上传到pypi社区以供他人下载。这就需要对该项目进行打包分发。 项目文件 这是一个已写好的项目文件包,叫做my_pkg,它的目录结构如下: tutorial/ my_pkg/ __init__.py main.py utils/ _ 阅读全文
摘要:
module类型 在Python中,使用import关键字导入一个包或者模块,模块是一个名为module的类型,只有模块类型才可以直接使用import导入。首先是导包过程。 print('导入前:', dir()) # 导包前全局变量 import os print('导入后:', dir()) # 阅读全文