随笔分类 -  并发编程

摘要:一. 阻塞IO 二. 非阻塞IO 三. IO多路复用 阅读全文
posted @ 2018-08-29 21:50 唯你如我心 阅读(124) 评论(0) 推荐(0) 编辑
摘要:一. 协程 协程: 是单线程下的并发, 又称微线程, 纤程. 英文名Coroutine. 协程是一种用户态的轻量级线程, 即协程是由用户程序自己控制调度的. 注意: 1. python的线程属于内核级别的, 即由操作系统控制调度(如单线程遇到IO或者执行时间过长就会被迫交出cpu执行权限, 切换其他 阅读全文
posted @ 2018-08-29 21:49 唯你如我心 阅读(175) 评论(0) 推荐(0) 编辑
摘要:一. 线程队列 引入线程队列 : import queue #和普通队列引入方法相同 线程队列方法 : q = queue.Queue() #实例化对列,先进先出 q = queue.LifoQueue() #实例化队列,后进先出 ( Last in, first out ) q = queue.P 阅读全文
posted @ 2018-08-27 17:47 唯你如我心 阅读(5538) 评论(0) 推荐(0) 编辑
摘要:一. 为什么要有线程 进程是资源分配的最小单位,线程是CPU调度的最小单位. 进程虽然可以提高计算机的利用率,但是进程还是有很多缺点,如果想同时做多件事,需要多进程;进程在执行的过程中,如果被阻塞,例如等待输入,整个进程就会被挂起,即使进程中有些工作不依赖于输入的数据,也无法执行. 二. 线程和进程 阅读全文
posted @ 2018-08-23 22:50 唯你如我心 阅读(247) 评论(0) 推荐(0) 编辑
摘要:一. 进程池 引入进程池 : from multiprocessing import Pool 创建进程池 : Pool( numprocess , initializer , initargs ) 参数 : numprocess : 要创建的进程数,如果省略,默认使用cpu_count() + 1 阅读全文
posted @ 2018-08-23 19:13 唯你如我心 阅读(3147) 评论(0) 推荐(1) 编辑
摘要:一. 管道 管道传输数据是不安全的,队列是安全的 导入管道 : from multiprocessing import Pipe 创建管道 : Pipe( duplex) 在进程之间创建一条管道,并返回元组( conn1,conn2),其中conn1,conn2表示管道两端的连接对象. 管道的创建必 阅读全文
posted @ 2018-08-22 22:32 唯你如我心 阅读(1513) 评论(0) 推荐(0) 编辑
摘要:一. 队列 引入队列 : from multiprocess import Queue,JoinableQueue(继承自Queue,所以可以使用Queue的方法) 创建队列 : Queue( maxsize ) #maxsize为队列允许的最大对列数,省略则不限制大小 实例化队列的具体使用方法 : 阅读全文
posted @ 2018-08-22 21:54 唯你如我心 阅读(1173) 评论(0) 推荐(0) 编辑
摘要:一. 锁 我们实现了程序的异步,让多个任务可以同时在几个进程中并发处理,他们之间运行没有先后顺序,一旦开启我们不能控制.但是这样会出现新的问题 : 当多个进程使用同一份数据资源时,就会引发数据安全或者顺序的混乱问题. 由以上结果来看,进程开启后不可控制,因为某一个人买完票后要讲库存票数-1重新写入文 阅读全文
posted @ 2018-08-21 18:02 唯你如我心 阅读(644) 评论(0) 推荐(0) 编辑
摘要:一. 什么是进程 狭义定义 : 进程是正在运行的程序的实例. 广义定义 : 进程(Process)是计算机中的程序关于某数据集合上的一次运动活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础. 它是操作系统执行的基本单元,在传统的操作系统中,进程即是基本的分配单元,也是基本的执行单元. 阅读全文
posted @ 2018-08-20 21:31 唯你如我心 阅读(295) 评论(0) 推荐(0) 编辑