最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中運行并行任務技巧

 更新時間:2015年02月26日 09:15:25   投稿:junjie  
這篇文章主要介紹了Python中運行并行任務技巧,本文給出了兩個示例,并用map來處理并行任務,需要的朋友可以參考下

示例

標準線程多進程,生產(chǎn)者/消費者示例:
Worker越多,問題越大

復制代碼 代碼如下:

# -*- coding: utf8 -*-

import os
import time
import Queue
import threading
from PIL import Image

def create_thumbnail(filename, size=(128, 128)):
    try:
        fp, fmt = filename.rsplit('.', 1)
        im = Image.open(filename)
        im.thumbnail(size, Image.ANTIALIAS)
        im.save((fp + '_'+'x'.join(str(i) for i in size) + '.'+fmt), im.format)
        return '%s thumbnail success!' % filename
    except Exception:
        return '%s thumbnail failed!' % filename


def get_image_paths(folder):
    return [os.path.join(folder, f) for f in os.listdir(folder) if 'png' in f]


class Consumer(threading.Thread):
    def __init__(self, queue):
        threading.Thread.__init__(self)
        self._queue = queue

    def run(self):
        while True:
            content = self._queue.get()
            if isinstance(content, str) and content == 'quit':
                break
            respone = create_thumbnail(content)
        print 'Bye bye!'


def Producer():
    filenames = get_image_paths('images')
    queue = Queue.Queue()
    worker_threads = build_worker_pool(queue, 4)
    start_time = time.time()

    for filename in filenames:
        queue.put(filename)
    for worker in worker_threads:
        queue.put('quit')
    for worker in worker_threads:
        worker.join()

    print time.time() - start_time


def build_worker_pool(queue, size):
    workers = []
    for _ in range(size):
        worker = Consumer(queue)
        worker.start()
        workers.append(worker)
    return workers


if __name__ == '__main__':
    Producer()

map

Map能夠處理集合按順序遍歷,最終將調(diào)用產(chǎn)生的結(jié)果保存在一個簡單的集合當中。

復制代碼 代碼如下:

# -*- coding: utf8 -*-

import os
import time
from multiprocessing import Pool
from PIL import Image

def create_thumbnail(filename, size=(128, 128)):
    try:
        fp, fmt = filename.rsplit('.', 1)
        im = Image.open(filename)
        im.thumbnail(size, Image.ANTIALIAS)
        im.save((fp + '_'+'x'.join(str(i) for i in size) + '.'+fmt), im.format)
        return '%s thumbnail success!' % filename
    except Exception:
        return '%s thumbnail failed!' % filename


def get_image_paths(folder):
    return [os.path.join(folder, f) for f in os.listdir(folder) if 'png' in f]


def main():
    filenames = get_image_paths('images')
    start_time = time.time()
   
    pool = Pool(4)
    pool.map(create_thumbnail, filenames)
    pool.close()
    pool.join()

    print time.time() - start_time


if __name__ == '__main__':
    main()

相關(guān)文章

  • 教你用Python尋找重復文件并刪除的腳本寫法

    教你用Python尋找重復文件并刪除的腳本寫法

    這篇文章主要介紹了如何用Python尋找重復文件并刪除,該腳本主要包括diskwalk,chechsum,find_dupes,delete模塊,其中diskwalk模塊是遍歷文件的,給定路徑,遍歷輸出該路徑下的所有文件,需要的朋友可以參考下
    2022-01-01
  • Python實現(xiàn)股市信息下載的方法

    Python實現(xiàn)股市信息下載的方法

    這篇文章主要介紹了Python實現(xiàn)股市信息下載的方法,涉及Python使用urllib模塊進行URL及文件的相關(guān)操作技巧,需要的朋友可以參考下
    2015-06-06
  • 用python求一重積分和二重積分的例子

    用python求一重積分和二重積分的例子

    今天小編就為大家分享一篇用python求一重積分和二重積分的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • numpy np.newaxis 的實用分享

    numpy np.newaxis 的實用分享

    今天小編就為大家分享一篇numpy np.newaxis 的實用分享,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Pyside6 安裝和簡單界面開發(fā)過程詳細介紹

    Pyside6 安裝和簡單界面開發(fā)過程詳細介紹

    PySide是跨平臺應用程序框架Qt的Python綁定,Qt是跨平臺C++圖形可視化界面應用開發(fā)框架,自推出以來深受業(yè)界盛贊,Pyside6是利用Python語言進行開發(fā)的GUI,所以在使用Pyside6前要先安裝Python環(huán)境,本文給大家介紹Pyside6 安裝和簡單界面開發(fā)過程,一起看看吧
    2023-10-10
  • Python單鏈表的簡單實現(xiàn)方法

    Python單鏈表的簡單實現(xiàn)方法

    這篇文章主要介紹了Python單鏈表的簡單實現(xiàn)方法,包括定義所需的字段及具體實現(xiàn)代碼的分析,需要的朋友可以參考下
    2014-09-09
  • Python??MkDocs優(yōu)雅地編寫文檔

    Python??MkDocs優(yōu)雅地編寫文檔

    在軟件開發(fā)過程中,編寫文檔是非常重要的一環(huán),文檔不僅可以幫助用戶理解和使用你的軟件,還可以提高團隊協(xié)作效率,然傳統(tǒng)的文檔寫作方式往往繁瑣而復雜,不易于維護更新,MkDocs工具以簡潔、優(yōu)雅的方式編寫文檔,并且能夠輕松生成漂亮的靜態(tài)網(wǎng)站
    2024-01-01
  • python multiprocessing 多進程并行計算的操作

    python multiprocessing 多進程并行計算的操作

    這篇文章主要介紹了python multiprocessing 多進程并行計算的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python3 cvs將數(shù)據(jù)讀取為字典的方法

    python3 cvs將數(shù)據(jù)讀取為字典的方法

    今天小編就為大家分享一篇python3 cvs將數(shù)據(jù)讀取為字典的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python3非對稱加密算法RSA實例詳解

    Python3非對稱加密算法RSA實例詳解

    這篇文章主要介紹了Python3非對稱加密算法RSA,結(jié)合實例形式分析了Python3 RSA加密相關(guān)模塊安裝及使用操作技巧,需要的朋友可以參考下
    2018-12-12

最新評論

揭西县| 黎川县| 康定县| 谷城县| 乌拉特前旗| 民乐县| 依兰县| 湖南省| 棋牌| 文安县| 钟祥市| 平罗县| 乌兰浩特市| 湖北省| 湘潭县| 自贡市| 乐昌市| 信宜市| 信丰县| 界首市| 乐山市| 沽源县| 都匀市| 盐城市| 临夏市| 南通市| 古蔺县| 陆川县| 商河县| 丽水市| 泰宁县| 浦江县| 昌都县| 雷波县| 十堰市| 桐梓县| 泸溪县| 宣城市| 慈利县| 霸州市| 和田县|