摘要: 并发编程小结 [TOC] 一、到底什么是线程?什么是进程? Python自己没有这玩意,Python中调用的操作系统的线程和进程。 二、Python多线程情况下: 计算密集型操作:效率低,Python内置的一个全局解释器锁,锁的作用就是保证同一时刻一个进程中只有一个线程可以被cpu调度,多线程无法利 阅读全文
posted @ 2020-02-04 14:25 RandySun 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 大白话五种IO模型 [TOC] 一、I/O模型介绍 为了更好地了解I/O模型,我们需要事先回顾下: "同步、异步、阻塞、非阻塞" 同步(synchronous) I/O和异步(asynchronous) I/O,阻塞(blocking) I/O和非阻塞(non blocking)I/O分别是什么,到 阅读全文
posted @ 2020-02-04 12:26 RandySun 阅读(252) 评论(0) 推荐(0) 编辑
摘要: Python程序中的协程操作 greenlet模块 [TOC] 一、安装模块 安装:pip3 install greenlet 二、greenlet实现状态切换 randy eat 1 randy play 1 randy eat 2 randy play 2 三、效率对比 单纯的切换(在没有io的 阅读全文
posted @ 2020-02-04 11:54 RandySun 阅读(163) 评论(0) 推荐(0) 编辑
摘要: Python程序中的协程操作 gevent模块 一、安装 安装:pip3 install gevent 二、Gevent模块介绍 Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet,它是以C扩展模块形式接入Python的轻量 阅读全文
posted @ 2020-02-04 11:53 RandySun 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 协程基础 [TOC] 一、引言 之前我们学习了线程、进程的概念,了解了在操作系统中 进程是资源分配的最小单位 , 线程是CPU调度的最小单位 。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题, 都要消耗一定的时间来创建进程、创建线程、以及管理他 阅读全文
posted @ 2020-02-04 11:19 RandySun 阅读(118) 评论(0) 推荐(0) 编辑
摘要: Python程序中的线程操作(线程池) concurrent模块 [TOC] 一、Python标准模块——concurrent.futures 官方文档:https://docs.python.org/dev/library/concurrent.futures.html 二、介绍 concurre 阅读全文
posted @ 2020-02-04 10:10 RandySun 阅读(463) 评论(0) 推荐(0) 编辑
摘要: Python程序中的线程操作 线程队列 [TOC] 一、线程队列 queue队列:使用 ,用法与进程Queue一样 queue is especially useful in threaded programming when information must be exchanged safely 阅读全文
posted @ 2020-02-04 09:48 RandySun 阅读(161) 评论(0) 推荐(0) 编辑
摘要: Python程序中的线程操作 锁 [TOC] 一、同步锁 1.1 多个线程抢占资源的情况 结果可能为: 99 1.1.1 对公共数据的操作 1.2 同步锁的引用 结果肯定为:0 1.3 互斥锁与join的区别 二、死锁与递归锁 进程也有死锁与递归锁,在进程那里忘记说了,放到这里一起说了。 所谓死锁: 阅读全文
posted @ 2020-02-04 09:35 RandySun 阅读(217) 评论(0) 推荐(0) 编辑