iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
Software Development

Python 爬蟲這樣學,一定是大拇指拉!系列 第 25

[Python 爬蟲這樣學,一定是大拇指拉!] DAY25 - 實戰演練:關於多執行緒

多執行緒

介紹什麼是多執行緒(multithreading)前,先來簡單講一下什麼是執行緒。

在作業系統中會有 Program / Process / Thread 這三種東西。

  • Program:最簡單的例子就是我們那些尚未被執行的爬蟲程式。
  • Process:被執行之後的爬蟲程式就會產生一個 Process。
  • Thread:則是負責 Process 裡其中一項工作,而 Process 之中可擁有數個 Thread。也就是說 Process 是 Thread 的容器,Thread 則是執行動作的單位。對一個單核心單執行緒的 CPU 來說,在運作程式時,一次只會執行一個 Process 裡的一個 Thread。像現在多核心多執行緒的 CPU,就可以一次執行好幾個 Process,並同時運行好幾個 Thread。

好的,對 Thread 有基本理解後,來介紹什麼是多執行緒(multithreading)吧!

引用自維基百科

多執行緒(英語:multithreading),是指從軟體或者硬體上實現多個執行緒並行執行的技術。具有多執行緒能力的電腦因有硬體支援而能夠在同一時間執行多於一個執行緒,進而提升整體處理效能。具有這種能力的系統包括對稱多處理機、多核心處理器以及晶片級多處理(Chip-level multithreading)或同時多執行緒(Simultaneous multithreading)處理器。

軟體多執行緒。即便處理器只能執行一個執行緒,作業系統也可以通過快速的在不同執行緒之間進行切換,由於時間間隔很小,來給使用者造成一種多個執行緒同時執行的假象。這樣的程式執行機制被稱為軟體多執行緒。

維基百科講得還蠻清楚的。但不知道大家還記不記得 Python 的特性,Python 就是一個軟體多執行緒的程式語言喔!
Python 特性 - 複習傳送門

總之呢,不管是軟體或者硬體上的多執行緒,都是為了讓 CPU 能更有效率地被使用。
以上就是執行緒與多執行緒簡單介紹,下篇將講解怎麼將多執行緒的概念套用在爬蟲程式上,以及為何要使用多執行緒的原因。

本篇章參考資料

[1] Wiki - 多執行緒


上一篇
[Python 爬蟲這樣學,一定是大拇指拉!] DAY24 - 實戰演練:偽裝
下一篇
[Python 爬蟲這樣學,一定是大拇指拉!] DAY26 - 實戰演練:多執行緒 - 抓取多個個股日成交資訊
系列文
Python 爬蟲這樣學,一定是大拇指拉!30

尚未有邦友留言

立即登入留言