-
Python多线程和多进程(六) 线程池的坑和问题——内存溢出、任务共享线程池导致饥饿或死锁和拒绝策略不当阻塞
发布时间:2022-11-18 00:29前文阅读:Python多线程和多进程(五) 多线程管理——线程池 前面我们说了python多线程和线程池的优势和使用方法,并通过爬虫实例做演示。那么本
-
爬虫进阶之Scrapy(十) scrapy引擎核心之twisted框架
发布时间:2021-02-18 11:26Scrapy是一个内置使用了Python的Twisted框架的抓取应用。Twisted是事件驱动的,它里面的大部分方法和api都是异步非阻塞的。现在我们抛开scrapy,假设我们自己开发一个爬虫,我们
-
爬虫进阶之Scrapy(九) 使用pybloom布隆过滤器优化scrapy_redis的去重策略
发布时间:2021-02-18 10:08Python实现BloomFilter(布隆过滤器) 有关布隆过滤器的原理和用途,可以看看这篇文章: 深入Redis之 redis布隆过滤器(十一) http
-
爬虫进阶之Scrapy(八) scrapy_redis模块实现分布式爬虫及原理分析
发布时间:2021-02-10 10:49Scrapy分布式爬虫的原理很简单,它依赖于scrapy的一个组件scrapy-redis。大致为: 将scrapy代码部署到多台工作机器(简称为服务器W),将redis服务部署到另一台服务器(
-
从IO模型到协程(五) python中的协程(coroutine)
发布时间:2020-11-14 13:18在观看本节之前,需要大家理解什么是生成器以及生成器是如何工作的,不了解生成器的朋友可以查看本博客有关python迭代器和生成器的文章。 一、什么是协程(Coroutine)
-
Python&PHP自动垃圾回收机制
发布时间:2020-11-14 10:32在介绍自动垃圾回收之前,先简单的介绍一下什么是内存泄漏。 当我们定义一个变量时,系统会为其开辟一个内存空间,当该变量使用完毕后由于一些原因使得该变量指向的内存空间没有被释放(例如一个对象使用完之
-
从IO模型到协程(四) 用python实现一个多路复用程序
发布时间:2020-11-10 23:27我们将以socket编程模拟http请求和多路复用io模型逐步引入协程首先,使用socket通信模拟http请求,下面是客户端的请求代码:# coding=utf-8 import socket
-
从IO模型到协程(三) 多路复用之select、poll和epoll
发布时间:2020-11-05 11:35什么是IO多路复用 IO多路复用本质是操作系统的一系列系统调用(select(), poll() 和 epoll()),它可以监视多个套接字,一旦某个套接字就绪(一般是读就绪或者写就绪),内核就
-
从IO模型到协程(二) BIO模型和NIO模型
发布时间:2020-11-05 10:18BIO:同步阻塞I/O模式 以下面的代码为例: 先是服务端代码: # coding=utf-8 from threading import Thread, currentThr
-
从IO模型到协程(一) 什么是IO,用户进程与内核
发布时间:2020-11-05 01:07什么是io? 在计算机系统中I/O就是输入(Input)和输出(Output)的意思,针对不同的操作对象,可以划分为磁盘I/O模型,网络I/O模型,内存映射I/O, Direct I/O、数据库I/