随笔分类 -  Python并发编程

进程/线程理论知识,Python多进程与多线程的程序编写,异步/协程的程序开发。
摘要:前言 本章主要针对上一章节中的I/O模型做一些代码性的练习,尽管可能很少用到。但是你应当知道这些东西。还是具体结合上一篇的理论知识来看吧。最后将协程放在了扩展篇中,因为感觉目前能接触到的很多都是I/O多路复用+异步。协程属实不太常见,可能我层次低了。 阻塞I/O的socket服务端 阻塞点1:acc 阅读全文
posted @ 2020-07-05 19:01 云崖先生 阅读(361) 评论(1) 推荐(1)
摘要:前言 Linux下主要的IO主要分为:阻塞IO(Blocking IO),非阻塞IO(Non-blocking IO),同步IO(Sync IO)和异步IO(Async IO)。 同步:调用端会一直等待服务端响应,直到返回结果。 异步:调用端发起调用之后不会立刻返回,不会等待服务端响应。服务端通过通 阅读全文
posted @ 2020-07-05 16:39 云崖先生 阅读(4255) 评论(0) 推荐(3)
摘要:前言 前面我们已经将线程并发编程与进程并行编程全部摸了个透,其实我第一次学习他们的时候感觉非常困难甚至是吃力。因为概念实在是太多了,各种锁,数据共享同步,各种方法等等让人十分头痛。所以这边要告诉你一个好消息,前面的所有学习的知识点其实都是为本章知识点做铺垫,在学习了本章节的内容后关于如何使用多线程并 阅读全文
posted @ 2020-07-03 23:25 云崖先生 阅读(3164) 评论(3) 推荐(1)
摘要:前言 其实multiprocessing模块与threading模块的接口都非常相似,但是有一些地方有一些细微差别。所以本文是基于前面的threading模块的一些知识对multiprocessing模块进行讲解的。 他们的主要区别有以下几点 1.创建子进程的方式针对不同平台有着差异化 2.关于守护 阅读全文
posted @ 2020-07-03 17:17 云崖先生 阅读(1086) 评论(0) 推荐(0)
摘要:queue模块简介 queue模块提供了多种队列,那么它主要是用于多线程编程中的数据共享。 我们都知道同一进程下的数据是能被多个线程共享的,那么为什么这些线程在同一进程下还去使用队列呢? 因为队列是: 管道 + 锁 所以使用队列来存放多个线程中用于共享的数据还是为了保证其数据的安全性。 queue模 阅读全文
posted @ 2020-07-02 18:45 云崖先生 阅读(354) 评论(0) 推荐(0)
摘要:前言 还是第一次摘出某个方法来专门写一篇随笔,哈哈哈。 为什么要写这个方法呢?因为它确实太重要了,包括后期的Flask框架源码中都有它的影子。 那么我们就来瞄一眼这个东西是啥吧。 作用 在Python官方中文文档中(Python3.8.4),对它的介绍其实并不是很详细 其实他的功能非常简单,如下: 阅读全文
posted @ 2020-07-02 11:31 云崖先生 阅读(2965) 评论(0) 推荐(0)
摘要:前言 本章节继续探讨threading模块下关于锁的应用,注意。这一期很重要,依然是围绕着理论篇来讲,这一章节主要围绕理论篇中的线程切换做讲解,因此一定要有一些线程切换方面的知识。 官方中文文档 线程安全 线程安全是多线程编程时的计算机程序代码中的一个概念。在拥有共享数据的多条线程并行执行的程序中, 阅读全文
posted @ 2020-07-01 21:22 云崖先生 阅读(1049) 评论(0) 推荐(0)
摘要:基本使用 Python中提供了threading模块用来实现线程并发编程,使用方法有两种,一种是将threading模块下的Therad类进行实例化的方式实现,一种是通过继承threading模块下的Therad类并覆写run()方法实现。 官方中文文档 实例化Therad类创建子线程 这种方式是最 阅读全文
posted @ 2020-07-01 11:59 云崖先生 阅读(1024) 评论(3) 推荐(0)
摘要:前言 其实关于Python的并发编程是比较难写的一章,因为涉及到的知识很复杂并且理论偏多,所以在这里我尽量的用一些非常简明的语言来尽可能的将它描述清楚,在学习之前首先要记住一个点:并发编程永远的宗旨就是提高程序的运行效率,也是围绕CPU来进行优化的一种技术手段。 像我们之前学习过的网络编程中,我们只 阅读全文
posted @ 2020-06-30 12:16 云崖先生 阅读(645) 评论(0) 推荐(1)