文章分类 -  线程与进程

python 中的 Threading 与 multiprocess
摘要:taskWorker.py 结果: 注意,当我们在一台机器上写多进程程序时,创建的Queue可以直接拿来用,但是,在分布式多进程环境下,添加任务到Queue不可以直接对原始的task_queue进行操作,那样就绕过了QueueManager的封装,必须通过manager.get_task_queue 阅读全文
posted @ 2017-12-03 20:03 LeeeetMe 阅读(305) 评论(0) 推荐(0)
摘要:协程(coroutine),又称微线程,纤程,是一种用户级别的轻量级线程,协程拥有自己的寄存器上下文和栈,协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存寄存器上下文和栈。因此协程能保留上一次调用时的状态,每次过程重入时,就相当于上一次调用的状态。在并发编程中,协程与县 阅读全文
posted @ 2017-12-03 18:38 LeeeetMe 阅读(136) 评论(0) 推荐(0)
摘要:线程池的概念是什么? 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服 阅读全文
posted @ 2017-07-03 16:26 LeeeetMe 阅读(225) 评论(0) 推荐(0)
摘要:进程池: multiprocess提供了一个Pool的类来代表进程池对象。 Pool可以提供指定数量的进程供用户调用,默认大小是CPU的核数,当有新的【请求】提交给Pool的时候,如果Pool没有满,则创建一个进程来执行该【请求】;如果Pool已经满了,则该【请求】会等待,知道进程池中有进程结束,才 阅读全文
posted @ 2017-06-29 22:36 LeeeetMe 阅读(126) 评论(0) 推荐(0)
摘要:进程与进程之间是不能像线程那样共享同一个变量的: 进程之间的数据共享: 在使用并发设计的时候,尽量避免数据共享,如果真的有需要进行数据传递与共享,multiprocess提供了2种传递数据的方式: 1、Queue: 类似线程中的queue 主进程在创建子进程的时候,会复制一份Queue到子进程中。 阅读全文
posted @ 2017-06-28 20:35 LeeeetMe 阅读(226) 评论(0) 推荐(0)
摘要:进程: 进程就是一个程序在一个数据集上的一次动态执行过程。 进程一般由程序、数据集、进程控制块三部分组成。我们编写的程序用来描述进程要完成哪些功能以及如何完成;数据集则是程序在执行过程中所需要使用的资源;进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它来控制和管理进程,它是系 阅读全文
posted @ 2017-06-28 20:12 LeeeetMe 阅读(197) 评论(0) 推荐(0)
摘要:Queue: Python中,队列是线程间最常用的交换数据的形式。Queue模块是提供队列操作的模块。 Python queue模块有三种队列及构造函数: 1、class queue.Queue(maxsize) - queue模块的FIFO队列先进先出。 2、class queue.LifoQue 阅读全文
posted @ 2017-06-26 23:28 LeeeetMe 阅读(201) 评论(0) 推荐(0)
摘要:线程: 线程是操作系统能够进行运算调度的最小单位,它被包含在进程中,是进程中的实际运作单位 一个进程实际上可以由多个线程的执行单元组成。每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。 由于在实际的网络服务器中对并行的需求,线程成为越来越重要的编程模型,因为多线程之间比多进程之间更容易共 阅读全文
posted @ 2017-06-22 09:03 LeeeetMe 阅读(149) 评论(0) 推荐(0)