一、多任务简介 1、为什么要使用多任务爬虫? 在大量的url需要请求时,单线程/单进程去爬取,速度太慢,此时cpu不工作,浪费cpu资源。 爬取与写入文件分离,可以规避io操作,增加爬取速度,充分利用cpu。 2、多任务分类 进程:进程是操作资源分配的最小单位,一个运行的程序,至少包括一个进程,进程 ...
分类:
其他好文 时间:
2020-03-31 01:20:58
阅读次数:
58
1.进程和线程还有协程之间的关系 1.1 进程,直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己独立的地址空间,有自己的堆,上级挂靠单位是操作系统。 操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位。 1.2 线程, ...
分类:
其他好文 时间:
2020-03-29 19:30:21
阅读次数:
67
1,几个概念: GIL: Global Interpreter Lock,全局解释器锁。为了解决多线程之间数据完整性和状态同步的问题,设计为在任意时刻只有一个线程在解释器中运行。 线程:程序执行的最小单位。 进程:系统资源分配的最小单位。 线程安全:多线程环境中,共享数据同一时间只能有一个线程来操作 ...
分类:
编程语言 时间:
2020-03-27 21:37:25
阅读次数:
92
Go 语言并发 Golang从语言层面就对并发提供了支持,而goruntine是Go语言并发设计的核心。 Go语言的并发机制运用起来非常舒适,在启动并发的方式上直接添加了语言级的关键字就可以实现,和其他编程语言相比更加轻量。 进程&线程 A、进程是程序在操作系统中的一次执行过程,系统进行资源分配和调 ...
分类:
编程语言 时间:
2020-03-27 10:46:17
阅读次数:
67
1.无论是进程还是线程都是由操作系统的时间片时间来进行操控,无法进行人为的控制,并且进行的都是并发程序。从微观上看还是同一时间执行一个程序。 2.进程是资源分配的最小单位,线程是cpu调度的最小单位。在开启线程的过程中,创建一个线程需要创建一个寄存器和堆栈,这些都是要花费时间的。 3。协程操作:为了 ...
分类:
其他好文 时间:
2020-03-20 15:40:04
阅读次数:
78
进程:资源分配的基本单位,是线程的容器 程序是固定不变的,而进程会根据运行需要,让操作系统动态分配各种资源 一个进程中包括多个线程 进程的状态:新建(刚打开),就绪(CPU下一个时间片运行另外的程序),运行 等待 ( 堵塞:本身的sleep) 死亡 就绪:运行的条件已经满足,正在等待CPU运行 ...
分类:
编程语言 时间:
2020-03-18 10:03:17
阅读次数:
75
根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位 在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。 所 ...
分类:
编程语言 时间:
2020-03-17 21:19:22
阅读次数:
75
YARN YARN是什么? YARN是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。 如果没有YARN! 无法管理集群资源分配问题。 无法合理的给程序分配合理的资源。 不方便监控 ...
分类:
其他好文 时间:
2020-03-17 13:51:21
阅读次数:
82
进程与线程的关系 1. 线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。 2. 资源分配给进程,同一进程的所有线程共享该进程的所有资源。 3. 线程在执行过程中,需要协作同步。不需要进程的线程间要利用消息通信的办法实现同步。 4. 处理机分给线程,即真正在处理机上运行的是线程。 5 ...
分类:
编程语言 时间:
2020-03-17 08:10:15
阅读次数:
59
操作系统部分 1、进程和线程的区别 1、进程是资源分配的最小单位,线程是程序执行的最小单位(资源调度的最小单位) 2、进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。 而线程是共享进程中的数据的,使用相同的地址空间,因此C ...
分类:
其他好文 时间:
2020-03-13 10:16:43
阅读次数:
100