欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?常用模塊threading和Thread模塊之線程池

 更新時間:2022年06月13日 09:31:19   作者:??孤寒者????  
這篇文章主要介紹了Python?threading和Thread模塊之線程池,線程池如消費者,負責接收任務(wù),并將任務(wù)分配到一個空閑的線程中去執(zhí)行。并不關(guān)心是哪一個線程執(zhí)行的這個任務(wù),具體介紹需要的小伙伴可以參考下面文章詳細內(nèi)容

1. 池的概念

主線程:

相當于生產(chǎn)者,只管向線程池提交任務(wù)。 并不關(guān)心線程池是如何執(zhí)行任務(wù)的。

線程池:

相當于消費者,負責接收任務(wù),并將任務(wù)分配到一個空閑的線程中去執(zhí)行。并不關(guān)心是哪一個線程執(zhí)行的這個任務(wù)。

2. 自定義線程池

# -*- coding: utf-8 -*-
from threading import Thread
from queue import Queue
import time

class ThreadPool:
    # 初始化
    def __init__(self, n):
        self.queue = Queue()
        for i in range(n):
            # 創(chuàng)建線程
            Thread(target=self.worker, daemon=True).start()		#daemon是開啟守護線程

    # 執(zhí)行任務(wù)
    def worker(self):
        while True:
            func, args, kwargs = self.queue.get()
            func(*args, *kwargs)
            self.queue.task_done()

    # 獲取任務(wù),將任務(wù)添加到隊列中
    def apply_async(self, target, args=(), kwargs={}):
        self.queue.put((target, args, kwargs))
    # 阻塞
    def join(self):
        self.queue.join()
def fun(x):
    print('愛孤寒者 第%s次' % x)
    time.sleep(3)
    print('帥哥美女就關(guān)注同名微信公眾號【孤寒者】啦~')

# 開兩個線程
t = ThreadPool(2)
# 提交10個任務(wù)
for i in range(10):
    t.apply_async(fun, args=(i,))
t.join()

3. 使用Python內(nèi)置線程池

# -*- coding: utf-8 -*-
from multiprocessing.pool import ThreadPool
import time
pool = ThreadPool(2)  # 創(chuàng)建兩個線程
def funa(x, y):
    print('%s好好學(xué)習(xí)' % x)
    time.sleep(3)
    print('天天向上')
def funb(x, y):
    print('%shello' % x)
    time.sleep(3)
    print('world')

# 我們這就是有一個線程池,里面有兩個等待處理任務(wù)的線程,然后這兩個函數(shù)就是兩個任務(wù),
# 線程池里一個線程處理一個,所以會同時輸出!如果多于兩個任務(wù)就會執(zhí)行等待sleep

pool.apply_async(funa, args=('我們要————', 2))  # 將任務(wù)添加到線程池
pool.apply_async(funb, args=('大家要————', 4))

pool.close()  # close之后則無法向線程池提交任務(wù)

# 內(nèi)置線程池,自帶守護線程,主線程結(jié)束,子線程也跟著結(jié)束
# 所以需要加阻塞,否則主線程一結(jié)束,子線程也跟著結(jié)束,無輸出
pool.join()  # 在join之前可使用終止線程,直接終止線程pool:  pool.terminate()

print('這是程序的最后一行,執(zhí)行到這里,主線程結(jié)束')

4. 池的其他操作

操作一: close - 關(guān)閉提交通道,不允許再提交任務(wù);

操作二: terminate - 中止進程池,中止所有任務(wù) 。

拓展: JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,易于人閱讀和編寫。 是用來存儲和交換文本信息的語法。

數(shù)據(jù)在名稱/值對中 數(shù)據(jù)由逗號分隔 大括號保存對象 中括號保存數(shù)組

使用 JSON 函數(shù)需要導(dǎo)入 json 庫:import json。

json,用于字符串 和 python數(shù)據(jù)類型間進行轉(zhuǎn)換json模塊提供了四個功能:dumps、dump、loads、load

  • 1.json.dumps 將 Python 對象編碼成 JSON 數(shù)據(jù)
  • 2.json.dump 將 JSON 數(shù)據(jù)通過特殊的形式轉(zhuǎn)換為只有 Python 認識的字符串并寫入文件
  • 3.json.loads 將已編碼的 JSON 數(shù)據(jù)解碼為 Python 對象
  • 4.json.load 將一個包含 JSON 格式數(shù)據(jù)的可讀文件解碼為一個 Python 對象并寫入文件

到此這篇關(guān)于Python 常用模塊threading和Thread模塊之線程池的文章就介紹到這了,更多相關(guān)Python線程池內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python圖片處理之圖片采樣處理詳解

    Python圖片處理之圖片采樣處理詳解

    這篇文章將詳細為大家講解圖像采樣處理,包括原理知識、代碼實現(xiàn)和局部馬賽克處理。文中的示例代碼講解詳細,感興趣的可以跟隨小編一起動手試一試
    2022-02-02
  • 利用Python實現(xiàn)簡單的驗證碼處理

    利用Python實現(xiàn)簡單的驗證碼處理

    這篇文章主要介紹了利用Python實現(xiàn)簡單的驗證碼處理,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • python列表詳情

    python列表詳情

    這篇文章主要介紹了python列表詳情,python沒有數(shù)組,而是引入了列表(list),列表可以存儲任何類型的數(shù)據(jù),而且同一個列表中的數(shù)據(jù)類型也可以不同,下面一起來看文章詳細內(nèi)容吧
    2021-12-12
  • 深入淺析Python 中的sklearn模型選擇

    深入淺析Python 中的sklearn模型選擇

    這篇文章主要介紹了Python sklearn模型選擇的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • 使用Django2快速開發(fā)Web項目的詳細步驟

    使用Django2快速開發(fā)Web項目的詳細步驟

    這篇文章主要介紹了使用Django2快速開發(fā)Web項目的詳細步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 對python中兩種列表元素去重函數(shù)性能的比較方法

    對python中兩種列表元素去重函數(shù)性能的比較方法

    今天小編就為大家分享一篇對python中兩種列表元素去重函數(shù)性能的比較方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python抓取百度首頁的方法

    python抓取百度首頁的方法

    這篇文章主要介紹了python抓取百度首頁的方法,涉及Python使用urllib模塊實現(xiàn)頁面抓取的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • python裝飾器底層原理詳解

    python裝飾器底層原理詳解

    這篇文章主要介紹了python裝飾器底層原理講解,被裝飾對象加上裝飾器,被裝飾對象獲得了更強大的功能,更多相關(guān)內(nèi)容,需要的朋友可以參考一下
    2022-07-07
  • Python腳本在Appium庫上對移動應(yīng)用實現(xiàn)自動化測試

    Python腳本在Appium庫上對移動應(yīng)用實現(xiàn)自動化測試

    這篇文章主要介紹了使用Python的Appium庫對移動應(yīng)用實現(xiàn)自動化測試的教程,屬于Python腳本的一個自動化應(yīng)用,需要的朋友可以參考下
    2015-04-04
  • 給Python學(xué)習(xí)者的文件讀寫指南(含基礎(chǔ)與進階)

    給Python學(xué)習(xí)者的文件讀寫指南(含基礎(chǔ)與進階)

    今天,貓貓跟大家一起,好好學(xué)習(xí)Python文件讀寫的內(nèi)容,這部分內(nèi)容特別常用,掌握后對工作和實戰(zhàn)都大有益處,學(xué)習(xí)是循序漸進的過程,欲速則不達
    2020-01-01

最新評論