![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多进程多线程
pythondafahao
修仙
展开
-
什么是线程?
Python的全局解释锁 注定 多线程 实际上 单线程 。高并发 模拟 并行。效率高低 看具体应用场景。 Thread 是threading模块中最重要的类之一,可以使用它来创建线程。 Thread模块是比较底层的模块,Threading模块是对Thread做了一些包装的,可以更加方便的被使用。 另外在工作时,有时需要让多条命令并发的执行, 而不是顺序执行. ...原创 2018-03-08 13:34:01 · 208 阅读 · 0 评论 -
多进程 存钱取钱问题 异步 同步 互斥问题
第一种 情况 多进程的特点 1 独立,三个 程序 互不干扰 独立执行 各干的事2并发,一个cpu 可以 干好几件 事 ,但不是 真正的 同时 执行 ,既并行。模拟 并行 。cpu 时间切片,轮询执行。3异步 各个 进程 没有资源共享 。不需要 等待 其他 进程 完成 再进行 自己的 操作。第二种情况value 共享 ,进程同步 需要等待 另一个进程执行完,使用 共享value,再接着执行自己进程...原创 2018-03-04 16:23:47 · 991 阅读 · 0 评论 -
协程 greenlet ,gevent monkey
并发,异步 ,的先天条件 决定是非阻塞。本质 是 单线程执行。又叫微线程 比 线程 更小的执行 实体单位。高性能解决方案 ,多进程 里 嵌套 协程,可以 利用 多核 并行资源。最大的优势 是协程极高的执行效率,因为子程序切换不是线程切换,而是由程序自身控制,因此没有线程切换的开销,和多线程对比性,多线程 数量 越多,性能优势 就越明显。第二大优势就是不需要多线程的锁机制,因为只有一个线程,也不存...原创 2018-03-11 14:16:14 · 644 阅读 · 0 评论 -
什么是进程池?并行 并发 同步 异步 阻塞 非阻塞 互斥 死锁
进程池?预先创建一组子进程,当有新任务来时,系统通过 调配 该组进程中的某个 子进程 完成此任务。为什么需要?1 进程创建 销毁需要 消耗 cpu 时间2预先创建,以空间 换时间,提升性能。时间 是 唯一 稀缺资源,空间不足 加内存,能够用钱解决的问题 都不是问题,钱都解决不了的 问题 才是 问题。3通过 系统 合理分配任务,提高性能。尽量 实现 真正 的 并行 处理,提升 系统 处理效率。注意...原创 2018-03-02 21:29:25 · 2732 阅读 · 4 评论 -
什么是队列?
Queue 是python标准库中的,线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,既队列,用来生产者和消费者线程之间的信息传递;...原创 2018-03-04 12:18:23 · 350 阅读 · 0 评论 -
Python 中死锁
多线程 真正运行 实际上 是 单线程。全局解释锁 决定 每个 只有一个 线程运行。并发。多进程 才能 解决 高 效率 。io 密集 线程 才有 优势。 第一种 情况 有一个核 接近100%利用第二种 情况 两个核加起来 接近100% 证明 实际上 每次只有 一个 线程 运行 。不是并行处理。第三种情况 两个核两个进程 就是 各自接近100% 利用。 你的 电脑 会卡 。并行 处理。喝咖啡 就是...原创 2018-03-08 20:40:43 · 2328 阅读 · 0 评论 -
什么是守护进程?
守护进程:父进程 结束,子进程 也结束 ,不会造成 僵尸进程。p.join()主进程 会等 子进程 结束 。如果 子进程 不结束 ,会 死等。注意:主进程对子进程join的话,子进程的daemon就会失效; daemon设置在start之后是无效的;默认情况下multiprocessing中主进程会等待子进程,显示等待某个进程,可以使用join;...原创 2018-03-01 21:26:02 · 367 阅读 · 0 评论 -
什么是僵尸进程?孤儿进程
僵尸进程 :子进程结束 ,父进程 还在运行。危害:系统调用的进程号是 有限 的,如果 僵尸进程 大量存在 ,就占用了大量的系统资源,且无法产生新的进程,导致系统无法 进行新的操作 , 应当避免。孤儿进程:父进程 结束,子进程 还在运行。孤儿进程 交由 内核 支配一个 继父 进程。os.fork():fork 的主进程 不会等待 子进程。造成 孤儿进程Process():主进程 会等待子进程,都干...原创 2018-03-01 21:17:21 · 463 阅读 · 0 评论 -
理解进程与 程序 多进程
把 代码 运行一遍 你就 理解 了 。os.getpid()获得 进程 pid 号码终端 输入 ps aux 查看 pid 号。pid 快照 获取 瞬间 动态。终端 输入 top 动态 查看 资源管理器 sudo pip3 install multiprocessing ,如果 没有 包 先安装 该程序 体现 以下特征:动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生...原创 2018-03-01 20:45:56 · 585 阅读 · 0 评论 -
pipe()
管道是一种最基本的一种简单的进程间通信(IPC)机制,作用于有血缘关系的进程之间,完成数据传递。调用pipe系统函数即可创建一个管道。有如下特质: 1. 其本质是一个伪文件(实为内核缓冲区) 2. 由两个文件描述符引用,一个表示读端,一个表示写端 3. 规定数据从管道的写端流入管道,从读端流出。管道的原理: 管道实为内核使用环形队列机制,借助内核缓冲区(4k)实...原创 2018-03-11 18:22:20 · 3509 阅读 · 0 评论