随笔分类 -  Python

pip模块的使用
摘要:安装pip: sudo apt-get install python-pip (python2的安装) sudo apt-get install python3-pip (python3的安装) 安装软件: pip3 install package升级: pip3 install --upgrade 阅读全文

posted @ 2018-09-29 20:23 zengsf 阅读(374) 评论(0) 推荐(0) 编辑

PDB调试模块
摘要:这里主要是一些对于调试常用的命令:1.直接通过命令端输入进行调试 以pdb调试模式运行(主要用这个) python3 -m pdb file.py 2.在代码中导入pdb模块 import pdb 功能:断点设置,单步执行,查看代码,查看函数,追踪变量等 pdb.set_trace() 功能 : 设 阅读全文

posted @ 2018-09-29 20:20 zengsf 阅读(820) 评论(0) 推荐(0) 编辑

httpserver
摘要:from socket import * from threading import Thread import sys import traceback #httpserver类,封装具体的服务器功能 class HTTPServer(object): def __init__(self, server_addr, static_dir): #增加服务器对象属性 ... 阅读全文

posted @ 2018-09-17 20:28 zengsf 阅读(332) 评论(0) 推荐(0) 编辑

协程
摘要:定义:纤程,微线程。协程的本质是一个单线程程序,所以协程不能够使用计算机多核资源。 作用:能够高效的完成并发任务,占用较少的资源。因此协程的并发量较高 原理:通过记录应用层的上下文栈区,实现在运行中进行上下文跳转,达到可以选择性的运行想要运行的部分,因此提高程序的运行效率。 优点:消耗资源少。无需切 阅读全文

posted @ 2018-09-17 20:24 zengsf 阅读(181) 评论(0) 推荐(0) 编辑

进程和线程的区别和联系
摘要:1.两者都是多任务编程方式,都能够使用计算机的多核资源2.进程的创建删除消耗的计算机资源比线程要多3.进程空间独立,数据相互不干扰,有专门的IPC,线程使用全局变量进程通信4.一个进程可以创建多个线程分支,两者之间存在包含关系5.多个线程公用进程的资源,在资源操作时往往需要同步互斥6进程线程在系统中 阅读全文

posted @ 2018-09-16 08:21 zengsf 阅读(383) 评论(0) 推荐(0) 编辑

python线程的GIL问题(全局解释器锁)
摘要:造成原因: python 》 支持线程操作 》IO的同步和互斥 --》 加锁 》 超级锁,给解释器加锁 》解释器同一时刻只能解释一个线程 造成的后果: 一个解析器同一时刻只有解释执行一个线程,所以导致python线程效率低下。但是当遇到IO阻塞时线程会主动让出解释器,因此python线程更加适合高延 阅读全文

posted @ 2018-09-14 23:07 zengsf 阅读(365) 评论(0) 推荐(0) 编辑

线程同步互斥的方法
摘要:线程的event: 创建对象: e = threading.Event() 事件阻塞函数 e.wait([timeout]) 设置事件 e.set() 清除事件 e.clear() 线程锁: lock = threading.Lock() 创建锁对象lock.acquire() 上锁lock.rel 阅读全文

posted @ 2018-09-14 23:06 zengsf 阅读(133) 评论(0) 推荐(0) 编辑

threading模块创建线程
摘要:什么是线程 (thread) 线程也是一种多任务编程方式,可以使用计算机的多核资源。线程被称为轻量级的进程。 线程特征 *线程计算机多核分配的最小单位 *一个进程可以包含多个线程 *线程也是一个运行的过程,消耗计算机资源,多个线程共享进程的资源和空间 *线程的创建删除消耗的资源都要远远小于进程 *多 阅读全文

posted @ 2018-09-14 23:04 zengsf 阅读(304) 评论(0) 推荐(0) 编辑

信号量(信号灯)
摘要:原理: 给定一个数量,对多个进程可见,且多个进程都可以操作。进程通过对数量多少的判断执行各自的行为。 multiprocessing --> Semaphore() 函数方法: sem = Semaphore(num) 功能 : 创建信号量对象 参数 : 信号量的初始值 返回 : 信号量对象 sem 阅读全文

posted @ 2018-09-14 22:59 zengsf 阅读(173) 评论(0) 推荐(0) 编辑

信号通道
摘要:通道原理: 一个进程向另一个进程发送一个信号来传递某种讯号,接受这根据收到的信号进行相应的行为 在命令端可以用这两个命令来查看和发起信号 kill -l 查看系统信号 kill -sig PID 向一个进程发送信号 一些常见的信号 SIGHUP 断开连接 SIGINT ctrl-c SIGQUIT 阅读全文

posted @ 2018-09-14 22:40 zengsf 阅读(353) 评论(0) 推荐(0) 编辑

内存共享
摘要:通信原理: 在内存中开辟一块空间,对多个进程可见,进程可以写入输入,但是每次写入的内容会覆盖之前的内容。 函数方法: shm = Value(ctype,obj) 功能: 开辟共享内存空间 参数: ctype 字符串 要转变的c的类型 obj 共享内存的初始数据 返回值 : 返回共享内存对象 *sh 阅读全文

posted @ 2018-09-12 22:53 zengsf 阅读(194) 评论(0) 推荐(0) 编辑

消息队列Queue
摘要:队列: 先进先出通信原理: 在内存中建立队列数据结构模型。多个进程都可以通过队列存入内容,取出内容的顺序和存入顺序保持一致 函数方法: q = Queue(maxsize = 0) 功能 : 创建队列对象 参数 : maxsize : 默认表示系统自动分配队列空间 如果传入正整数则表示最多存放多少条 阅读全文

posted @ 2018-09-12 22:48 zengsf 阅读(141) 评论(0) 推荐(0) 编辑

管道通信Pipe
摘要:通信原理: 在内存中开辟管道空间,生成管道操作对象,多个进程使用“同一个”管道对象进程操作即可实现通信 函数方法: fd1,fd2 = Pipe(duplex = True) 功能: 创建管道 参数:默认表示双向管道 如果设置为False则为单向管道 返回值 : 两个管道对象,分别表示管道的两端 如 阅读全文

posted @ 2018-09-12 22:44 zengsf 阅读(212) 评论(0) 推荐(0) 编辑

进程池
摘要:产生原因: 如果有大量的任务需要多进程完成,则可以需要频繁的创建删除进程,给计算机带来了较多的资源消耗 处理原理: 创建适当的进程放入进程池,用来处理待处理事件,处理完毕后进程不销毁,仍然在进程池中等待处理其他事件。进程的复用降低了资源的消耗。 使用方法: 1.创建进程池,在池内放入适当的进程 2. 阅读全文

posted @ 2018-09-12 22:35 zengsf 阅读(148) 评论(0) 推荐(0) 编辑

multiprocessing创建自定义进程类
摘要:1.继承Process2.编写自己的__init__,同时加载父类init方法3.重写run方法,可以通过生成的对象调用start自动运行 阅读全文

posted @ 2018-09-12 22:21 zengsf 阅读(199) 评论(0) 推荐(0) 编辑

multiprocessing模块
摘要:执行步骤; 1. 需要将要做的事情封装成函数 2. 使用multiprocessing提供的类Process创建进程对象 3. 通过进程对象和Process初始化进程进行进程的设置,绑定函数 4. 启动进程,会自动执行绑定的函数 5. 完成进程的回收 函数: Process() 功能: 创建进程对象 阅读全文

posted @ 2018-09-11 23:08 zengsf 阅读(142) 评论(0) 推荐(0) 编辑

孤儿进程及僵尸进程
摘要:孤儿进程: 父进程先于子进程退出,此时子进程就称之为孤儿进程 *孤儿进程会被操作系统指定的进程收养,系统进程就成为孤儿进程的新的父进程 僵尸进程: 子进程先于父进程退出,但是父进程没有处理子进程的退出状态,此时子进程就会成为僵尸进程 *僵尸进程会存留少量PCB信息在内存中,如果大量的僵尸进程没有处理 阅读全文

posted @ 2018-09-10 22:42 zengsf 阅读(202) 评论(0) 推荐(0) 编辑

创建一个新的进程os.fork
摘要:import os pid = os.fork()功能:创建新的进程参数:无返回值:失败返回一个负数 成功:在原有进程中返回一个新的进程的PID号 在新的进程中返回0 *子进程会复制父进程全部代码段,包括fork之前产生的内存空间*子进程从fork的下一句开始执行,与父进程互补干扰*父子进程的执行顺 阅读全文

posted @ 2018-09-10 22:40 zengsf 阅读(318) 评论(0) 推荐(0) 编辑

进程的特征
摘要:1.进程之间运行互不影响,各自独立运行2.进程是操作系统资源分配的最小单位3.每个进程空间独立,各自占有一定的虚拟内存 阅读全文

posted @ 2018-09-10 22:39 zengsf 阅读(668) 评论(0) 推荐(0) 编辑

进程的状态
摘要:就绪态:进程具备执行条件,等待系统分配资源运行态:进程占有cpu处于运行状态等待态:进程暂时不具备执行条件,阻塞等待满足条件后再执行 新建态:创建一个新的进程,获取资源的过程终止态:进程执行结束,资源释放回放的过程 liunx终端命令:ps -aux >STAT D 等待态 阻塞 不可中断等待态 S 阅读全文

posted @ 2018-09-10 22:37 zengsf 阅读(143) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示