Pythonのスレッドプールの使用状況分析モジュールThreadPoolExecutor

この記事では、PythonモジュールThreadPoolExecutorスレッドプールの使用状況、PythonのスレッドプールモジュールThreadPoolExecutorのインポートの分析を説明し、困っている友達を参照することができ、一例で、基本的なフォームを使用する
例のPythonモジュールThreadPoolExecutorスレッドプールの使用方法についての記事。以下のように、ご参考のためにあなたに共有します:

python3の両方がスレッドプールを行うことができ、そこThreadingpoolとThreadPoolExecutorモジュールを内蔵し、もちろん、基本的に同じを使用して、いくつかのThreadPoolExecutor、だけでなく、ProcessPoolExecutorプロセスプールのモジュールを使用する方が良いでしょう。

まず、インポートモジュール

from concurrent.futures import ThreadPoolExecutor

使用することは非常に簡単で、最も一般的に使用される方法は、おそらくマップで、+ as_completedを提出します

注、あなたが、それは手動で行う必要がありますのために使用する必要がある場合は必ず、というよりもために、一緒に使用することでexecutor.shutdown、あなたは内部に再び方法が達成されていると、その後、この方法で使用しwait()たスレッド・プールを閉じることができ、使用後にした後、資源の無駄を減らします。

マップの使用

with ThreadPoolExecutor(max_workers=2) as executor:
  result = executor.map(map_fun, itr_arg)
  '''map_fun:你传入的要执行的map函数
    itr_arg:一个可迭代的参数,可以是列表字典等可迭代的对象
    基本上和python的map函数一样
    注意result并不是你map_fun返回的结果,而是一个生成器,如果要从中去结果,你可以使用列表生成式或者其他你想使用的方法
  '''
  for res in result:
    print(res) #这个res就是你map_fun返回的结果,你可以在这里做进一步处理

使用as_completed +提出することも非常に柔軟であることができ

with ThreadPoolExecutor(max_workers=2) as executor:
  future= executor.submit(fun, args)
  '''
  在这里你可以使用for循环来做,返回的是一个future对象
  future_list=[]
  for i in range(max_workers):
    future= executor.submit(fun, args[i])
    future_list.append(future)
  '''
  for res in ac_completed(futrue_list): #这个futrure_list是你future对象的列表
    print(res.result())        #循环遍历时用.result()来取返回值

ほぼ、うまく二つの方法でマルチスレッドタスクを実装することができ、我々は、使用することを覚えておく必要がありますwith!
私たちの学習のPythonバックルqun推奨:774711191、高齢者が学んでいる方法を見て!基本的なWeb開発Pythonスクリプトからなど、爬虫類、ジャンゴ、データマイニング、へ[PDF、実際のソースコード]、ゼロベースのプロジェクトの戦闘データに仕上げています。どんな小さなPythonのパートナーに与えられました!毎日、ダニエルは学び、細部に注意を払う必要性に、クリックにご参加くださいする方法のいくつかを共有するために、タイミングPythonの技術を説明する学習者集会のPython

发布了35 篇原创文章 · 获赞 9 · 访问量 1万+

おすすめ

転載: blog.csdn.net/haoxun02/article/details/104254423