摘要:
一、主线程会等待所有的子线程结束后才结束 首先我看下最普通情况下,主线程和子线程的情况。 import threading from time import sleep, ctime def sing(): for i in range(3): print("正在唱歌...%d" % i) slee 阅读全文
摘要:
当程序中包含多个线程时,CPU 不是一直被特定的线程霸占,而是轮流执行各个线程。 那么,CPU 在轮换执行线程的过程中,即从创建到消亡的整个过程,可能会历经 5 种状态,分别是新建、就绪、运行、阻塞和死亡。 线程的新建状态 无论是通过 Thread 类直接实例化对象创建线程,还是通过继承自 Thre 阅读全文
摘要:
我们怎么让一个 Python 程序里边实现多任务呢? 实现多任务可以有多种方式,这里我们先了解使用线程的方式实现多任务。 线程是实现多任务的一种的手段。 其实用的是 threading 模块,threading 模块里有一个类叫 Thread。 Python 的 thread 模块是比较底层的模块, 阅读全文
摘要:
现实生活中,有很多场景中的事情是同时进行的,比如开车的时候,手和脚共同来驾驶汽车,再比如唱歌跳舞也是同时进行的。 以上这些可以理解为多任务。那在程序中怎么能做到多任务,它有什么好处? 接下来我们来看看没有多任务的程序是什么效果。 import time def sing(): for i in ra 阅读全文
摘要:
什么是下载? 首先客户端会问服务器,有没有一个xxx的文件啊?服务器开始寻找,找到后对客户端说有,然后客户端在本地新建一个文件,客户端从服务器收到一点数据,就写进这个文件中,再收到一点数据,再写入这个文件中,只要把所有的接收到的数据都写入到这个文件中,就完成了下载的操作。 所以下载需要2个部分。服务 阅读全文
摘要:
TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。 TCP通信需要经过创建连接、数据传送、终止连接三个步骤。 TCP通信模型中,在通信开始之前,一定要先建立 阅读全文
摘要:
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。 UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。 udp网络程序模型图。 接下来,我们用 python 代码实现udp数据的发送和接收。 阅读全文
摘要:
网络编程就是编写程序使两台联网的计算机相互交换数据。 那么,这两台计算机之间用什么传输数据呢?首先你肯定先需要物理连接嘛。 在此基础上,只需要考虑如何编写数据传输程序。看似很麻烦,但实际上这点不用愁,因为操作系统已经提供了 socket。即使对网络数据传输的原理不太熟悉,我们也能通过 socket 阅读全文
摘要:
当程序运行时,变量是保存数据的好方法,但变量、序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中。 Python 提供了内置的文件对象,以及对文件、目录进行操作的内置模块,通过这些技术可以很方便地将数据保存到文件(如文本文件等)中。 一、文 阅读全文
摘要:
实际开发中,一个大型的项目往往需要使用成百上千的 Python 模块,如果将这些模块都堆放在一起,势必不好管理。 而且,使用模块可以有效避免变量名或函数名重名引发的冲突,但是如果模块名重复怎么办呢? 因此,Python提出了包(Package)的概念。 一、包的概念和基本使用 什么是包呢?简单理解, 阅读全文