本地套接字
作用:用于本地不同程序间的进行数据传输
本地套接字的创建流程
1、创建套接字对象
sockfd = socket(AF_UNIX,SOCK_STREAM)
2、绑定本地套接字文件,如果文件不存在,则自动创建文件(绑定套接字文件)
sockfd.bind(file)
判断一个文件夹下是否有某个文件 os.path.exists('./tcp_client.py')
删除一个文件 os.remove(file) os.remove(file)
3、监听 listen
4、接收发送消息 recv send
1 from socket import * 2 import os 3 4 sock_file = './sock' # 使用哪个文件作为套接字文件 5 6 if os.path.exists(sock_file):# 判断文件是否已经存在 7 os.unlink(sock_file) 8 9 sockfd = socket(AF_UNIX,SOCK_STREAM) # 创建本地套接字 10 11 sockfd.bind(sock_file) # 绑定 12 sockfd.listen(5) # 监听 13 14 while True: 15 c,addr = sockfd.accept() # 建立连接 16 while True: 17 data = c.recv(1024) 18 if not data: 19 break 20 print(data.decode()) 21 c.close() 22 sockfd.close()
1 from socket import * 2 3 sock_file = "./sock" # 确保通信两端用相同的套接字文件 4 5 sockfd = socket(AF_UNIX,SOCK_STREAM) # 创建套接字 6 7 sockfd.connect(sock_file) # 链接 8 9 while True: 10 msg = input("Msg>>") 11 if msg: 12 sockfd.send(msg.encode()) 13 else: 14 break 15 16 sockfd.close()
多任务编程
意义:充分利用计算机的资源提高程序的运行效率
定义:通过应用程序利用计算机多个核心,达到同时执行多个任务的目的
实施方案: 多进程、多线程
并行:多个计算机核心在同时处理多个任务,多个任务之间是并行关系
并发:计算机同时处理多个任务,内核在多个任务间不断切换切换,达到好像在同时处理的运行效果。此时多个任务实际为并发关系
进程:程序在计算机中运行一次的过程
程序:是一个可执行文件,是静态的,占有磁盘,不占有计算机运行资源
进程:进程是一个动态的过程描述,占有CPU内存等计算机资源的,有一定的生命周期
* 同一个程序的不同执行过程是不同的进程,因为分配的计算机资源等均不同
进程的创建过程
1、用户启动一个程序或者进程创建,发起进程创建
2、操作系统接收用户请求,分配计算机资源,创建进程
3、操作系统分配进程资源给用户使用,分配资源
4、用户利用操作系统提供的进程完成任务 利用资源完成任务
CPU时间片:如果一个进程占有计算机核心,我们称为该进程在CPU时间片上。多个任务实际对CPU会进行争夺,一般由操作系统分配CPU时间片
PCB进程控制块:在操作系统中,进程创建后会自动产生一个空间存放进程消息,称为进程控制块
进程信息:进程PID,进程占有的内存位置,创建进程,用户。。。。。。
进程PID:进程在操作系统中的唯一编号,大于0整数,由系统自动分配
进程信息查看命令: ps -aux