关键词搜索

源码搜索 ×
×

Python爬虫基础:多进程简介

发布2022-03-21浏览363次

详情内容

什么是多任务?

什么叫"多任务"呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时v有3个任务正在运行。还有很多任务悄悄地在后台同时运行着,只是桌面上没有显示而已。

在了解多任务具体实现方式之前,我们先来了解并发和并行的概念:

并发:

在一段时间内交替去执行多个任务。

对于单核cpu处理多任务,操作系统轮流让各个任务交替执行,假如:软件1执行0.01秒,切换到软件2,软件2执行0.01秒,再切换到软件3,执行0.01秒…这样反复执行下去,实际上每个软件都是交替执行的.但是,由于CPU的执行速度实在是太快了,表面上我们感觉就像这些软件都在同时执行一样.这里需要注意单核cpu是并发的执行多任务的。

并行:

在一段时间内真正的同时一起执行多个任务。

对于多核cpu处理多任务,操作系统会给cpu的每个内核安排一个执行的任务,多个内核是真正的一起同时执行多个任务。这里需要注意多核cpu是并行的执行多任务,始终有多个任务一起执行。

其实并发和并行就是多任务具体的实现方式:多线程和多进程

并发可以理解为一件事情由多个人同时去做,相当于我雇佣了很多个工具人帮我抢着做事。

对应的在程序中我们可以这么理解:当程序发生阻塞导致程序挂起时,我们可以让程序执行程序后面的任务。需要注意的是程序在同一时间只会执行了个任务。这是多线程的实现原理。

并行可以理解为多个人同时做多件事情。相当于多个人在同一时间做不同的事情,每个人做事都是一个独立的个体。这是多进程的实现原理。

要点

使用多任务能充分利用CPU资源,提高程序的执行效率,让你的程序具备处理多个任务的能力。

多任务执行方式有两种方式:

  • 并发:在一段时间内交替去执行多个任务。
  • 并行:在一段时间内真正的同时一起执行多个任务

我们今天学习多线程并发编程,并运用到爬虫项目中

单线程程序

线程是一个单独的执行流程。这意味着您的程序将同时发生两件事。不同的线程实际上并不是同时执行的:它们只是看起来像同时执行。

现在您已经了解了线程是什么,让我们学习如何创建一个线程。Python标准库提供threading。Thread在这个模块中,很好地封装了线程,提供了一个干净的界面来使用它们。

要启动一个单独的线程,您需要创建一个Thread 实例,然后告诉它.start()。

接下来我们看看泡茶页的这个例子:

import time
 
print( '1.洗壶:1min ' )
time.sleep(1)
print( ' 2.灌凉水: 1min ' )
time.sleep(1)
print( '3.烧水: 1min ' )
time.sleep(1)
print('4.等水烧开:3min')
time.sleep(1)
time.sleep(1)
time.sleep(1)
print('5.洗茶杯:1min ' )
time.sleep(1)
print( '6.放茶叶: 1min ' )
time.sleep(1)
print( '7.泡茶: 1min ' )
time.sleep(1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

很显然,上述的案例是一个单线程,同时只能做一件事情,那么我们来想一想,可不可以利用程序阻塞没有事情做的时候,我们强迫程序做下面还没有做的事情

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载