摘要:安装pip: sudo apt-get install python-pip (python2的安装) sudo apt-get install python3-pip (python3的安装) 安装软件: pip3 install package升级: pip3 install --upgrade
阅读全文
摘要:这里主要是一些对于调试常用的命令:1.直接通过命令端输入进行调试 以pdb调试模式运行(主要用这个) python3 -m pdb file.py 2.在代码中导入pdb模块 import pdb 功能:断点设置,单步执行,查看代码,查看函数,追踪变量等 pdb.set_trace() 功能 : 设
阅读全文
摘要:from socket import * from threading import Thread import sys import traceback #httpserver类,封装具体的服务器功能 class HTTPServer(object): def __init__(self, server_addr, static_dir): #增加服务器对象属性 ...
阅读全文
摘要:定义:纤程,微线程。协程的本质是一个单线程程序,所以协程不能够使用计算机多核资源。 作用:能够高效的完成并发任务,占用较少的资源。因此协程的并发量较高 原理:通过记录应用层的上下文栈区,实现在运行中进行上下文跳转,达到可以选择性的运行想要运行的部分,因此提高程序的运行效率。 优点:消耗资源少。无需切
阅读全文
摘要:1.两者都是多任务编程方式,都能够使用计算机的多核资源2.进程的创建删除消耗的计算机资源比线程要多3.进程空间独立,数据相互不干扰,有专门的IPC,线程使用全局变量进程通信4.一个进程可以创建多个线程分支,两者之间存在包含关系5.多个线程公用进程的资源,在资源操作时往往需要同步互斥6进程线程在系统中
阅读全文
摘要:造成原因: python 》 支持线程操作 》IO的同步和互斥 --》 加锁 》 超级锁,给解释器加锁 》解释器同一时刻只能解释一个线程 造成的后果: 一个解析器同一时刻只有解释执行一个线程,所以导致python线程效率低下。但是当遇到IO阻塞时线程会主动让出解释器,因此python线程更加适合高延
阅读全文
摘要:线程的event: 创建对象: e = threading.Event() 事件阻塞函数 e.wait([timeout]) 设置事件 e.set() 清除事件 e.clear() 线程锁: lock = threading.Lock() 创建锁对象lock.acquire() 上锁lock.rel
阅读全文
摘要:什么是线程 (thread) 线程也是一种多任务编程方式,可以使用计算机的多核资源。线程被称为轻量级的进程。 线程特征 *线程计算机多核分配的最小单位 *一个进程可以包含多个线程 *线程也是一个运行的过程,消耗计算机资源,多个线程共享进程的资源和空间 *线程的创建删除消耗的资源都要远远小于进程 *多
阅读全文
摘要:原理: 给定一个数量,对多个进程可见,且多个进程都可以操作。进程通过对数量多少的判断执行各自的行为。 multiprocessing --> Semaphore() 函数方法: sem = Semaphore(num) 功能 : 创建信号量对象 参数 : 信号量的初始值 返回 : 信号量对象 sem
阅读全文
摘要:通道原理: 一个进程向另一个进程发送一个信号来传递某种讯号,接受这根据收到的信号进行相应的行为 在命令端可以用这两个命令来查看和发起信号 kill -l 查看系统信号 kill -sig PID 向一个进程发送信号 一些常见的信号 SIGHUP 断开连接 SIGINT ctrl-c SIGQUIT
阅读全文
摘要:通信原理: 在内存中开辟一块空间,对多个进程可见,进程可以写入输入,但是每次写入的内容会覆盖之前的内容。 函数方法: shm = Value(ctype,obj) 功能: 开辟共享内存空间 参数: ctype 字符串 要转变的c的类型 obj 共享内存的初始数据 返回值 : 返回共享内存对象 *sh
阅读全文
摘要:队列: 先进先出通信原理: 在内存中建立队列数据结构模型。多个进程都可以通过队列存入内容,取出内容的顺序和存入顺序保持一致 函数方法: q = Queue(maxsize = 0) 功能 : 创建队列对象 参数 : maxsize : 默认表示系统自动分配队列空间 如果传入正整数则表示最多存放多少条
阅读全文
摘要:通信原理: 在内存中开辟管道空间,生成管道操作对象,多个进程使用“同一个”管道对象进程操作即可实现通信 函数方法: fd1,fd2 = Pipe(duplex = True) 功能: 创建管道 参数:默认表示双向管道 如果设置为False则为单向管道 返回值 : 两个管道对象,分别表示管道的两端 如
阅读全文
摘要:产生原因: 如果有大量的任务需要多进程完成,则可以需要频繁的创建删除进程,给计算机带来了较多的资源消耗 处理原理: 创建适当的进程放入进程池,用来处理待处理事件,处理完毕后进程不销毁,仍然在进程池中等待处理其他事件。进程的复用降低了资源的消耗。 使用方法: 1.创建进程池,在池内放入适当的进程 2.
阅读全文
摘要:1.继承Process2.编写自己的__init__,同时加载父类init方法3.重写run方法,可以通过生成的对象调用start自动运行
阅读全文
摘要:执行步骤; 1. 需要将要做的事情封装成函数 2. 使用multiprocessing提供的类Process创建进程对象 3. 通过进程对象和Process初始化进程进行进程的设置,绑定函数 4. 启动进程,会自动执行绑定的函数 5. 完成进程的回收 函数: Process() 功能: 创建进程对象
阅读全文
摘要:孤儿进程: 父进程先于子进程退出,此时子进程就称之为孤儿进程 *孤儿进程会被操作系统指定的进程收养,系统进程就成为孤儿进程的新的父进程 僵尸进程: 子进程先于父进程退出,但是父进程没有处理子进程的退出状态,此时子进程就会成为僵尸进程 *僵尸进程会存留少量PCB信息在内存中,如果大量的僵尸进程没有处理
阅读全文
摘要:import os pid = os.fork()功能:创建新的进程参数:无返回值:失败返回一个负数 成功:在原有进程中返回一个新的进程的PID号 在新的进程中返回0 *子进程会复制父进程全部代码段,包括fork之前产生的内存空间*子进程从fork的下一句开始执行,与父进程互补干扰*父子进程的执行顺
阅读全文
摘要:1.进程之间运行互不影响,各自独立运行2.进程是操作系统资源分配的最小单位3.每个进程空间独立,各自占有一定的虚拟内存
阅读全文
摘要:就绪态:进程具备执行条件,等待系统分配资源运行态:进程占有cpu处于运行状态等待态:进程暂时不具备执行条件,阻塞等待满足条件后再执行 新建态:创建一个新的进程,获取资源的过程终止态:进程执行结束,资源释放回放的过程 liunx终端命令:ps -aux >STAT D 等待态 阻塞 不可中断等待态 S
阅读全文