进程
qq_42413204
这个作者很懒,什么都没留下…
展开
-
Process类
创建子进程Process()类参数: target 指定要绑定的函数name #给创建的进程起一个名字args #给target 指定的函数传参,按位置传参,需要给args传入元组kwargs #需要给一个字典,给target指定的函数按键值传参#进程函数的使用from multiprocessing import Processfrom time i...原创 2018-06-20 21:46:37 · 1610 阅读 · 0 评论 -
进程效率测试
多线程的工作效率和单线程工作效率几乎相近; 多进程要比前两者有明显的提升;设计模式:经典的设计模式目前有23种; 设计模式代表了一种最佳实现,是被开发者长期开发总结用来解决某一类问题的思路方法,这些方法保证了代码的效率也易于理解。 23种设计模式: 单例模式/工厂模式/抽象工厂模式/模版方法模式/建造者模式/代理模式/原型模式/中介者模式/命令模式/责任链模式/装饰模式/策...原创 2018-06-23 21:57:30 · 254 阅读 · 0 评论 -
线程间通信:使用全局变量
import threadingfrom time import sleeps=None #临界资源def bar(): print("呼叫foo") global s s='天王'def foo(): print('foo等口令') sleep(2) print('foo收到%s'%s)def fun(): #线程bar1被这个...原创 2018-06-23 01:14:16 · 1453 阅读 · 0 评论 -
线程
线程也可以使用计算机的多核资源,也是多任务编程方式之一线程又称轻量级的进程,在并发上喝进程相同但是在创建时消耗资源较少线程特点:一个进程可以包含多个线程,这多个线程共享进程的资源;多个线程因为共享进程的资源所以在通信上采用全局变量的方法;多进程和多线程的区别和联系: 1. 多进程和多线程都是多任务编程方式,都可以使用计算机多核; 2. 进程的创建要比线程消...原创 2018-06-23 00:21:41 · 110 阅读 · 0 评论 -
LOCK
进程间同步互斥方法:from multiprocessing import Locklock=Lock()# 创建进程锁对象lock.acquire() #给临界区上锁lock.release() #给临界区解锁具体实现上acquire()为一个条件阻塞函数,当有任意一个进程先进行了操作后,其他进程再企图进行acquire操作时就会阻塞,直到lock对象被release 后其...原创 2018-06-22 21:28:19 · 212 阅读 · 0 评论 -
同步和互斥
临界资源:对多个进程或者线程都可见的资源,容易造成争夺的资源,称之为临界资源。临界资源可能会造成程序执行的混乱。临界区:对临界资源进行操作的代码区域称之为临界区,指的是一段执行代码;解决资源争夺问题:同步或者互斥; 同步:同步是一种合作关系,为了完成某种任务而建立的多个进程或者线程之间的协调调用,次序等待,传递消息告知资源占用情况。 互斥:互斥是一种制约关系,当一个进程或者线程...原创 2018-06-22 20:28:16 · 90 阅读 · 0 评论 -
信号
发送信号:os.kill(pid,sig)作用:向一个进程发送一个信号 参数pid:要发送进程的PID号 参数sig:要发送的信号例子import osimport signalos.kill(777,signal.SIGKILL)#向777进程发送一个信号功能:给自己发送一个时钟信号signal.alarm(sec)参数sec:秒数,表示在相应的秒...原创 2018-06-22 19:44:45 · 133 阅读 · 0 评论 -
进程间的通信:共享内存
在内存中开辟一段内存空间存储数据,每次存储的内容都会覆盖上次的内容。由于没有对内存进行格式化的修饰所以存取速度块效率高。from multiprocessing import Value,Arrayfrom multiprocessing import Value,Processimport timeimport random #获取随机值def deposite(mone...原创 2018-06-21 20:31:44 · 123 阅读 · 0 评论 -
进程的通信:消息队列
multiprocessing —> Queue 在内存中开辟一个队列模型,用来存放消息,任何拥有队列对象的进程都可以进行消息的存放和取出。Queue()#创建一个消息队列对象参数:maxsize,默认为0,表示消息队列可以存放的消息由系统自动分配的空间而定 0 正整数,表示队列中最多存放多少条消息 返回值:消息队列对象向消息队列中存放一条消息,当消息队列满...原创 2018-06-21 19:16:57 · 139 阅读 · 0 评论 -
进程间的通信:管道
管道在内存中开辟一个管道空间,对多个进程可见,在通信形式上形成一种约束;multiprocessing —>PipePipe(duplex)功能:创建一个管道 参数:duplex 默认为True,表示管道为双向的;如果设置为False 则表示管道为单向管道 返回值:返回两个管道流对象,分别表示管道的两端, 如果参数为True,两个对象均可发送接收; 如果参数为Fals...原创 2018-06-21 16:20:03 · 114 阅读 · 0 评论 -
进程间的通信
不同的进程间进行数据的传输,比如支付宝授权登陆闲鱼账户。进程间的通信方法: 1. 文件进行进程间的通信,通过磁盘交互,速度慢。(过时方法)现代方法: 2. 管道方法进行交互; 3. 消息队列进行交互; 4. 共享内存进行交互; 5. 信号交互; 6. 套接字;...原创 2018-06-21 15:23:29 · 99 阅读 · 0 评论 -
自定义类
from multiprocessing import Processimport timeclass ClockPorcess(Process): def __init__(self,value): Process.__init__(self) self.value=value def run(self): n=5 ...原创 2018-06-21 00:25:44 · 201 阅读 · 0 评论 -
进程池技术
创建进程池,在池内放入合适数量的进程将时间加入进程池的等待队列使用进程池内的进程不断的执行等待事件所有事件处理结束后关闭回收进程池 import multiprocessing as mpfrom time import sleepimport osdef worker(msg): sleep(2) print(msg)#创建进程池对象,进程...原创 2018-06-20 23:49:19 · 125 阅读 · 0 评论 -
多进程的优点和缺点
优点: 可以并行的执行多个任务,提高运行效率,(可利用计算机多核),空间独立,数据安全,创建方便缺点: 进程的创建和销毁过程需要消耗较多的计算机资源, 在需要频繁创建和删除较多进程的情况下,资源消耗过多,不适宜使用多进程完成任务; 不过进程池技术可以解决频繁创建和删除多进程。 进程池技术: ...原创 2018-06-20 22:02:45 · 5751 阅读 · 0 评论 -
pythonThread总结
进程和线程区别;会创建适用线程threading;掌握基本的线程间同步互斥编程方法;知道什么是GIL了解设计模式的概念面试注意: 1. 进程/线程区别 提问率高 2. 什么是同步和互斥 3. 给一个具体的情况,问采用进程还是线程,采用原因? 4. 处理僵尸进程的方法。 5. 如何测试一个硬盘的读写速度 6. Django框架 使用的是多进程 还是多线程并发 7....原创 2018-06-23 22:05:17 · 120 阅读 · 0 评论