摘要:
同步互斥 线程间通信方法 1.通信方法:线程间使用全局变量进行通信 2.共享资源争夺 共享资源:多个进程或者线程都可以操作的资源称为共享资源。对共享资源的操作代码段称为临界区。 影响 : 对共享资源的无序操作可能会带来数据的混乱,或者操作错误。此时往往需要同步互斥机制协调操作顺序。 3.同步互斥机制 阅读全文
摘要:
自定义线程类 1.创建步骤【1】 继承Thread类【2】 重写__init__方法添加自己的属性,使用super加载父类属性【3】 重写run方法 2.使用方法【1】 实例化对象【2】 调用start自动执行run方法【3】 调用join回收线程 1 from threading import T 阅读全文
摘要:
线程对象属性 t.name 线程名称 t.setName() 设置线程名称 t.getName() 获取线程名称 t.is_alive() 查看线程是否在生命周期 t.daemon 设置主线程和分支线程的退出关系 t.setDaemon() 设置daemon属性值 t.isDaemon() 查看da 阅读全文
摘要:
线程编程(Thread) 线程基本概念 1.什么是线程【1】 线程被称为轻量级的进程【2】 线程也可以使用计算机多核资源,是多任务编程方式【3】 线程是系统分配内核的最小单元【4】 线程可以理解为进程的分支任务 2.线程特征【1】 一个进程中可以包含多个线程【2】 线程也是一个运行行为,消耗计算机资 阅读全文
摘要:
进程间通信(IPC) 1.必要性: 进程间空间独立,资源不共享,此时在需要进程间数据传输时就需要特定的手段进行数据通信。 2.常用进程间通信方法:管道通信、消息队列、共享内存、信号量 管道通信(Pipe) 1.通信原理:在内存中开辟管道空间,生成管道操作对象,多个进程使用同一个管道对象进行读写即可实 阅读全文
摘要:
进程池实现 1.必要性【1】 进程的创建和销毁过程消耗的资源较多【2】 当任务量众多,每个任务在很短时间内完成时,需要频繁的创建和销毁进程。此时对计算机压力较大【3】 进程池技术很好的解决了以上问题。 2.原理 创建一定数量的进程来处理事件,事件处理完进 程不退出而是继续处理其他事件,直到所有事件全 阅读全文
摘要:
multiprocessing 模块创建进程 进程创建方法 1.流程特点【1】 将需要子进程执行的事件封装为函数【2】 通过模块的Process类创建进程对象,关联函数【3】 可以通过进程对象设置进程信息及属性【4】 通过进程对象调用start启动进程【5】 通过进程对象调用join回收进程 2.基 阅读全文
摘要:
基于fork的多进程编程 fork使用 pid = os.fork()功能: 创建新的进程返回值:整数,如果创建进程失败返回一个负数,如果成功则在原有进程中返回新进程的PID,在新进程中返回0 注意: 子进程会复制父进程全部内存空间,从fork下一句开始执行。 父子进程各自独立运行,运行顺序不一定。 阅读全文
摘要:
多任务编程 1.意义: 充分利用计算机多核资源,提高程序的运行效率。 2.实现方案 :多进程 , 多线程 3.并行与并发 并发 : 同时处理多个任务,内核在任务间不断的切换达到好像多个任务被同时执行的效果,实际每个时刻只有一个任务占有内核。 并行 : 多个任务利用计算机多核资源在同时执行,此时多个任 阅读全文
摘要:
struct模块的使用 1.原理: 将一组简单数据进行打包,转换为bytes格式发送。或者将一组bytes格式数据,进行解析。 2.接口使用 Struct(fmt) 功能: 生成结构化对象 参数:fmt 定制的数据结构 st.pack(v1,v2,v3....) 功能: 将一组数据按照指定格式打包转 阅读全文
摘要:
HTTP协议 (超文本传输协议) 1.用途 : 网页获取,数据的传输 2.特点: 应用层协议,传输层使用tcp传输 简单,灵活,很多语言都有HTTP专门接口 无状态,协议不记录传输内容 http1.1 支持持久连接,丰富了请求类型 3.网页请求过程 HTTP请求(request) 1.请求行 : 具 阅读全文
摘要:
广播定义 : 一端发送多点接收 广播地址 : 每个网络的最大地址为发送广播的地址,向该地址发送,则网段内所有主机都能接收。 """ 创建udp套接字 设置套接字可以接收广播 选择接收端口 """ from socket import * s=socket(AF_INET,SOCK_DGRAM) #让 阅读全文
摘要:
tcp套接字和udp套接字编程区别 1.流式套接字是以字节流方式传输数据,数据报套接字以数据报形式传输 2.tcp套接字会有粘包,udp套接字有消息边界不会粘包 3.tcp套接字保证消息的完整性,udp套接字则不能 4.tcp套接字依赖listen accept建立连接才能收发消息,udp套接字则不 阅读全文
摘要:
socket套接字属性 【1】 sockfd.type 套接字类型 【2】 sockfd.family 套接字地址类型 【3】 sockfd.getsockname() 获取套接字绑定地址 【4】 sockfd.fileno() 获取套接字的文件描述符 【5】 sockfd.getpeername( 阅读全文
摘要:
套接字介绍 1.套接字 : 实现网络编程进行数据传输的一种技术手段 2.Python实现套接字编程:import socket 3.套接字分类 流式套接字(SOCK_STREAM): 以字节流方式传输数据,实现tcp网络传输方案。(面向连接--tcp协议--可靠的--流式套接字) 数据报套接字(SO 阅读全文
摘要:
套接字介绍 1.套接字 : 实现网络编程进行数据传输的一种技术手段 2.Python实现套接字编程:import socket 3.套接字分类 流式套接字(SOCK_STREAM): 以字节流方式传输数据,实现tcp网络传输方案。(面向连接--tcp协议--可靠的--流式套接字) 数据报套接字(SO 阅读全文
摘要:
网络编程基础 计算机网络功能主要包括实现资源共享,实现数据信息的快速传递。 OSI七层模型 制定组织: ISO(国际标准化组织) 作用:使网络通信工作流程标准化 应用层 : 提供用户服务,具体功能有应用程序实现 表示层 : 数据的压缩优化加密 会话层 : 建立用户级的连接,选择适当的传输服务 传输层 阅读全文
摘要:
IO 1.定义:在内存中存在数据交换的操作认为是IO操作,比如和终端交互 ,和磁盘交互,和网络交互等 2.程序分类: IO密集型程序:在程序执行中有大量IO操作,而cpu运算较少。消耗cpu较少,耗时长。 计算密集型程序:程序运行中计算较多,IO操作相对较少。cpu消耗多,执行速度快,几乎没有阻塞。 阅读全文
摘要:
排序和查找 排序(Sort)是将无序的记录序列(或称文件)调整成有序的序列。 常见排序方法: 冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 1 # 阅读全文
摘要:
基础概念 1.定义:树(Tree)是n(n≥0)个节点的有限集合T,它满足两个条件:有且仅有一个特定的称为根(Root)的节点;其余的节点可以分为m(m≥0)个互不相交的有限集合T1、T2、……、Tm,其中每一个集合又是一棵树,并称为其根的子树(Subtree)。 2.基本概念 一个节点的子树的个数 阅读全文