国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Python中的多線程是什么?如何實現(xiàn)?

以下是本文所涵蓋的所有專業(yè)的簡要總結:

什么是python中的多線程?

什么時候在Python中使用多線程?

如何在Python中實現(xiàn)多線程?

如何在Python中創(chuàng)建線程?

  • 而不創(chuàng)建類
  • 通過擴展線程類
  • 不擴展線程類

在Python中使用多線程的優(yōu)點

首先,讓我們先嘗試理解多任務處理,然后才開始學習Python中的多線程。

Python中的多任務處理是什么?

一般來說,多任務處理是一種同時執(zhí)行多項任務的能力。在技術上,多任務處理是指操作系統(tǒng)同時執(zhí)行不同任務的能力。例如,你在你的電腦上下載一些東西,聽歌,同時玩游戲等等。所有這些任務都由同一個操作系統(tǒng)同步執(zhí)行。這只不過是多任務處理,它不僅可以幫助您節(jié)省時間,而且還可以提高工作效率。

這是小編準備的python學習資料,關注,轉發(fā),私信小編“01”即可獲??!

在操作系統(tǒng)中有兩種類型的多任務處理:

  • 以過程為基礎
  • 線程基

在本文中,您將了解到 線程基 多任務或 多線程 .

什么是線?

線程基本上是一個獨立執(zhí)行流程。單個進程可以由多個線程組成。程序中的每個線程都執(zhí)行特定的任務。例如,當你在電腦上玩游戲時,比如說國際足聯(lián),整個游戲是一個單一的過程。,但它由幾個線程組成,負責播放音樂、接收用戶的輸入、同步運行對手等。所有這些都是單獨的線程,負責在同一個程序中執(zhí)行這些不同的任務。

每個進程都有一個始終在運行的線程。這是主線。這個主線程實際上創(chuàng)建子線程對象。子線程也由主線程啟動。在本文中,我將進一步介紹如何檢查當前運行的線程。

因此,我希望你們已經(jīng)清楚地理解了什么是一條線。接下來,讓我們看看Python中的多線程是什么。

什么時候在Python中使用多線程?

多線程是非常有用的節(jié)省時間和提高性能,但它不能適用于任何地方。

在前面的FIFA示例中,音樂線程獨立于接受輸入的線程,而接受輸入的線程獨立于運行對手的線程。這些線程獨立運行,因為它們不相互依賴。

因此,只有當單個線程之間的依賴關系不存在時,才能使用多線程。

本文進一步展示了如何在Python中實現(xiàn)多線程。

如何在Python中實現(xiàn)多線程?

可以通過導入穿線模塊。

在導入此模塊之前,您必須安裝此模塊。要在anaconda環(huán)境中安裝它,請在anaconda提示符上執(zhí)行以下命令:

conda安裝-c conda-鍛造tbb

成功安裝它之后,可以使用以下任何命令導入線程模塊:

import threadingfrom threading import *

現(xiàn)在已經(jīng)安裝了線程模塊,讓我們繼續(xù)使用Python進行多線程處理。

如何在Python中創(chuàng)建線程?

Python中的線程可以通過三種方式創(chuàng)建:

  1. 而不創(chuàng)建類
  2. 通過擴展Thread類
  3. 不擴展線程類

而不創(chuàng)建類

Python中的多線程也可以在不創(chuàng)建類的情況下完成。下面是一個演示相同內(nèi)容的示例:

例子:

from threading import *print(current_thread().getName())def mt(): print('Child Thread')child=Thread(target=mt)child.start()print('Executing thread name :',current_thread().getName())

產(chǎn)出:

MainThreadChild ThreadExecuting thread name : MainThread

上面的輸出顯示,存在的第一個線程是主線程。然后,這個主線程創(chuàng)建一個執(zhí)行函數(shù)的子線程,然后主線程再次執(zhí)行最后的print語句。

現(xiàn)在讓我們繼續(xù)前進,看看如何通過擴展Thread類在python中執(zhí)行多線程。

通過擴展Thread類:

當通過擴展Thread類創(chuàng)建子類時,子類表示一個新線程正在執(zhí)行某些任務。在擴展Thread類時,子類只能覆蓋兩個方法,即_init_()方法和run()方法。除了這兩個方法之外,其他任何方法都不能被重寫。

下面是如何擴展Thread類以創(chuàng)建線程的示例:

例子:

import threadingimport timeclass mythread(threading.Thread): def run(self): for x in range(7): print('Hi from child')a = mythread()a.start()a.join()print('Bye from',current_thread().getName())

產(chǎn)出:

孩子問好

孩子問好

孩子問好

孩子問好

孩子問好

孩子問好

孩子問好

主線再見

上面的示例顯示類myclass繼承Thread類,子類,即myclass重寫Run方法。默認情況下,任何類函數(shù)的第一個參數(shù)都必須是Self,它是指向當前對象的指針。輸出顯示子線程執(zhí)行run()方法,主線程等待Child執(zhí)行完成。這是因為JOIN()函數(shù),它使主線程等待子線程完成。

這種創(chuàng)建線程的方法是最好的方法,因為它是標準的方法。但是,如果希望在不繼承或擴展Thread類的情況下創(chuàng)建線程,則可以采用以下方式。

不擴展線程類

要在不擴展Thread類的情況下創(chuàng)建線程,可以執(zhí)行以下操作:

例子:

from threading import *class ex:def myfunc(self): #self necessary as first parameter in a class func for x in range(7): print('Child')myobj=ex()thread1=Thread(target=myobj.myfunc)thread1.start()thread1.join()print('done')

產(chǎn)出:

兒童

兒童

兒童

兒童

兒童

兒童

兒童

已完成

子線程執(zhí)行myfunc,然后主線程執(zhí)行最后一個print語句。

使用線程的優(yōu)點

多線程有許多優(yōu)點,其中一些優(yōu)點如下:

  • 更好地利用資源
  • 簡化代碼
  • 允許并發(fā)和并行地發(fā)生各種任務。
  • 減少時間消耗或響應時間,從而提高性能。

下面是一個示例,用于檢查在python中使用和不使用多線程執(zhí)行代碼所需的時間:

Example:import timedef sqr(n): for x in n: time.sleep(1) x%2def cube(n): for x in n: time.sleep(1) x%3n=[1,2,3,4,5,6,7,8]s=time.time()sqr(n)cube(n)e=time.time()print(e-s)

產(chǎn)出:

16.042309284210205

以上是在不使用線程的情況下執(zhí)行程序所需的輸出時間?,F(xiàn)在讓我們使用線程,看看同一個程序發(fā)生了什么:

例子:

import threadingfrom threading import *import timedef sqr(n): for x in n: time.sleep(1) print('Remainder after dividing by 2',x%2)def cube(n): for x in n: time.sleep(1) print('Remainder after dividing by 3',x%3)n=[1,2,3,4,5,6,7,8]start=time.time()t1=Thread(target=sqr,args=(n,))t2=Thread(target=cube,args=(n,))t1.start()time.sleep(1)t2.start()t1.join()t2.join()end=time.time()print(end-start)

產(chǎn)出: 9.040220737457275

上面的輸出清楚地表明,與不使用線程的相同程序執(zhí)行所需的時間相比,我們使用線程所花費的時間要少得多。

我希望您能夠清楚地了解本文中涉及到的與Python中的多線程有關的概念。確保盡可能多地實踐,因為這是編程中使用的最重要的概念之一。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python + PyQt架構:多線程入門示例
java多線程之繼承Thread類創(chuàng)建線程類
Java語言程序設計基礎課件ppt第11章 多線程-1
python多線程編程(1): python對多線程的支持
python支持多線程嗎?python入門指南
徐葳【2019版最新】40小時掌握Java語言之05多線程
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服