
并发编程
abc ༽
心有猛虎,细嗅蔷薇
展开
-
异步调用及回调函数
主要知识点 同步调用:会等进程执行完才会执行下一个进程(串行) 异步调用:简单理解就是并行 回调函数:pool.submit().add_done_callback(funcname) ,参数为要执行的函数名,在并行的情况解决了函数需要传递函数的问题,接受参数的函数内部,需要使用 res.result() 来取值,不然是一个对象。 from concurrent.futures import ...原创 2018-10-31 22:41:54 · 443 阅读 · 0 评论 -
线程池及进程池
主要知识点 1.调用的模块:from concurrent.futures impot 线程池:TheadPoolExecutor 进程池: ProcessPoolExecutor 2. 实例化对象设置池大小:pool = ProcessPoolExecutor(10) 参数为池大小 3. 发布任务:pool.submit() 类似process.start的意思,启动进程 4. 关闭池...原创 2018-10-31 22:53:22 · 126 阅读 · 0 评论 -
Event事件案例
没什么好多说的,字面意思,wait等待,set发出开启信号。 from multiprocessing import Process,Event #from threading import Event import time def stu(name): print('%s 上课中' % name) event.wait() # 参数为超时等待的时间 秒为单位 pr...原创 2018-10-31 23:15:36 · 309 阅读 · 0 评论 -
线程
三种实例化方式 q.put() 向队列中传递数据 q.get() 在队列中取数据 from queue q = queue.Queue(3) # 先进先出,参数为队列数 l = queue.LifoQueue(3) # 后进先出(堆栈概念),参数为队列数 p = queue.PriorityQueue(3) # 优先级队列,参数为队列数 p.put((10, 'one')) # 元组:第一个参...原创 2018-10-31 23:33:17 · 92 阅读 · 0 评论 -
Timer计时器
不难理解,实例化的时候两个参数:时间间隔(延迟多久执行),函数名(需执行的函数名) from threading import Timer def demo(): print('hello world!') timer = Timer(2, demo) timer.start() 执行结果: 两秒后打印出 hello world ...原创 2018-10-31 23:40:17 · 137 阅读 · 0 评论 -
三种锁:互斥锁Lock,递归锁Rlock,信号量Samaphore
互斥锁:牺牲了效率,得到了数据安全,串行了。 缺点:acqueire后其他进程必须等到该进程release后才能继续拿到锁,可能会出现死锁情况。 def demo(): mutex.acquire() print('%s 拿到了A锁' % current_thread().getName()) time.sleep(2) mutex.release() pr...原创 2018-11-01 00:20:36 · 691 阅读 · 0 评论 -
python并发编程知识框架
原创 2018-11-03 00:09:49 · 242 阅读 · 0 评论