0
点赞
收藏
分享

微信扫一扫

Python爬虫基础讲解(十六):多线程简介

​​Python学习交流群:1039649593​​

什么是多任务?

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

Python爬虫基础讲解(十六):多线程简介_多线程

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

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

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

Python爬虫基础讲解(十六):多线程简介_多线程_02

最直观的就是如下图所示:

Python爬虫基础讲解(十六):多线程简介_python_03

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

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

Python爬虫基础讲解(十六):多线程简介_多进程_04

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

  • 并发可以理解为一件事情由多个人同时去做,相当于我雇佣了很多个工具人帮我抢着做事。对应的在程序中我们可以这么理解:当程序发生阻塞导致程序挂起时,我们可以让程序执行程序后面的任务。需要注意的是程序在同一时间只会执行了个任务。这是多线程的实现原理。
  • 并行可以理解为多个人同时做多件事情。相当于多个人在同一时间做不同的事情,每个人做事都是一个独立的个体。这是多进程的实现原理。

要点

  1. 使用多任务能充分利用CPU资源,提高程序的执行效率,让你的程序具备处理多个任务的能力。
  2. 多任务执行方式有两种方式:
  • 并发:在一段时间内交替去执行多个任务。
  • 并行:在一段时间内真正的同时一起执行多个任务


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


单线程程序

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

现在您已经了解了线程是什么,让我们学习如何创建一个线程。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)

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


举报

相关推荐

0 条评论