网络
进程:
多任务:同一时间内执行多个任务。
单任务:逐一完成。
并发和并行
并行:同时执行
并发:任务的交替执行
进程和程序
程序:静态概念,已经编写完成的代码
进程:运行起来的代码块,除了代码,还有系统分配的资源
单线程:单线程测试,默认情况下,程序启动只有一个线程,这个线程就是主线程,线程是CPU调度的基本单位。
实例:
def coding():
for i in range(5):
print('敲代码')
def smoking():
for i in range(5):
print('正在抽烟')
if __name__ == '__main__':
coding()
smoking()
多线程实例:
import threading
def coding():
for i in range(5):
print('敲代码',i)
def smoking():
for i in range(5):
print('正在抽烟',i)
if __name__ == '__main__':
print('刚进入程序',threading.enumerate())
#这个函数显示的是活动的线程个数
print(threading.current_thread())
#计算活动的线程的个数
print(threading.active_count())
coding_thread=threading.Thread(target=coding)
smoking_thread=threading.Thread(target=smoking)
print(coding_thread)
print(smoking_thread)
print('创建线程之后',threading.enumerate())
#开启线程
coding_thread.start()
smoking_thread.start()
print('启动之后',threading.enumerate())
threading:写多线程模块
target:这个参数指定的是线程需要执行的函数名,不能加()。
只有在调用start之后,线程才活动。
threading.enumerate:显示下活动的线程个数
计算活动线程个数:threading.active_count()
展示所有的活动线程:threading.current_thread()
线程的执行是无序的,是操作系统来决定的
守护主线程:如果主线程退出,子线程直接销毁,使用setDaemon()
设置守护线程必须在start()之前
import threading
def smoking():
for i in range(5):
print('正在抽烟',i)
if __name__ == '__main__':
smoking_thread=threading.Thread(target=smoking)
smoking_thread.setDaemon(True)
smoking_thread.start()
print('主线程结束')
exit()
自定义线程
start()方法内部调用的是run()方法
TCP/IP协议
IP地址:标记网络中唯一的一台设备
地址分类:ABCDE 常用C
本地回环地址:127.0.0.1(localhost)
个数:2的16次方
端口:是数据发出或者接收的入口
著名端口(0-1023)(不允许使用)
端口的目的:通过端口号找到对应的进程,完成数据的通信
UDP客户端使用:
步骤:
1.创建UDP的客户端,创建套接字
第一个参数表示的是地址类型,用于Internet之间的进程 通信
第二个参数表示的是传输协议udp
A=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
2.使用套接字进行收发数据
A.sendto(‘数据内容’.encode(‘utf-8’),(‘地址’,8080))
3.套接字关闭
A.close()
注意点:发送的数据需要处理字节流文件,windows使用gbk,ubuntu使用utf-8
上一篇: Chdir (Cd) 显示当前目录的名称,或更改当前的文件夹
下一篇: SpringMVC 单元测试