この記事では、小扁は、共有への皆のために、今、非常に良い感じが、また、基準となる、Pythonのスレッドプール(スレッドプール)モジュールは、ノートが説明使用について説明します。小扁は一緒にそれを見るためにフォローアップするために
同時にインポート場合、デバイスストリームアドレスやその他の機器をプッシュし、最近の機器情報サプリメント、デバイスステータスプッシュを含む機器(カメラ、DVR、NVR、など)を含め、プロジェクトのビデオデバイスの管理を行っています多数は、多数のデバイスのために、その後、シングルスレッド化デバイス検出を用いて行った場合、その問題をマルチスレッド化を検討し、より大きな遅延をもたらすでしょう。
記事のディレクトリ
あなたは自分の言語を達成するためのPythonのスレッドプールを使用することができ、またはあなたがスレッドプールのスレッドプールパッケージ、サードパーティ製のパッケージを使用することができ、このトピックでは、特定の実装がスレッドプールとその内部を使用して説明しています。
まず、インストールしてご紹介
pip install threadpool
pool = ThreadPool(poolsize)
requests = makeRequests(some_callable, list_of_args, callback)
[pool.putRequest(req) for req in requests]
pool.wait()
1行目には、非常に多くのスレッドを表すプールサイズまで作成することができ、スレッドプールを定義します。
二行目が開いてマルチスレッド機能に作成さmakeRequests、およびコールバック関数を記述することはできません関連するパラメータとコールバック関数の機能を、呼び出すことです、デフォルトでは2つのパラメータのみを実行できる手段makeRequests、noです。
第三のラインの使用は、かなり奇妙であるすべての要求は[要求にREQためpool.putRequest(REQ)]スレッドプールに投げ込ま複数のスレッドを実行することであると等価です
リクエストでREQ用:pool.putRequest(REQ)
すべてのスレッドが仕事を終了するのを待った後、四行目。
774711191、高齢者が学んでいる方法を見て:私たちは、Pythonのバックルqunを学ぶお勧めします!基本的なWeb開発Pythonスクリプトからなど、爬虫類、ジャンゴ、データマイニング、へ[PDF、実際のソースコード]、ゼロベースのプロジェクトの戦闘データに仕上げています。どんな小さなPythonのパートナーに与えられました!毎日、ダニエルは学び、細部に注意を払う必要性に、クリックにご参加くださいする方法のいくつかを共有するために、タイミングPythonの技術を説明する学習者集会のPython
第二に、コード例
import time
def sayhello(str):
print "Hello ",str
time.sleep(2)
name_list =['xiaozi','aa','bb','cc']
start_time = time.time()
for i in range(len(name_list)):
sayhello(name_list[i])
print '%d second'% (time.time()-start_time)
スレッドプールのコードを使用し、より少ない時間、より効率を過ごします
import time
import threadpool
def sayhello(str):
print "Hello ",str
time.sleep(2)
name_list =['xiaozi','aa','bb','cc']
start_time = time.time()
pool = threadpool.ThreadPool(10)
requests = threadpool.makeRequests(sayhello, name_list)
[pool.putRequest(req) for req in requests]
pool.wait()
print '%d second'% (time.time()-start_time)
複数のパラメータの関数は、最初の関数呼び出しリストがアンパック、第二辞書を解凍するとき、それはあることができます。
def hello(m, n, o):
""""""
print "m = %s, n = %s, o = %s"%(m, n, o)
if __name__ == '__main__':
# 方法1
lst_vars_1 = ['1', '2', '3']
lst_vars_2 = ['4', '5', '6']
func_var = [(lst_vars_1, None), (lst_vars_2, None)]
# 方法2
dict_vars_1 = {'m':'1', 'n':'2', 'o':'3'}
dict_vars_2 = {'m':'4', 'n':'5', 'o':'6'}
func_var = [(None, dict_vars_1), (None, dict_vars_2)]
pool = threadpool.ThreadPool(2)
requests = threadpool.makeRequests(hello, func_var)
[pool.putRequest(req) for req in requests]
pool.wait()
入ってくるパラメータ、スレッドプールと、その後の人々を変換する必要があります。
def getuserdic():
username_list=['xiaozi','administrator']
password_list=['root','','abc123!','123456','password','root']
userlist = []
for username in username_list:
user =username.rstrip()
for password in password_list:
pwd = password.rstrip()
userdic ={}
userdic['user']=user
userdic['pwd'] = pwd
tmp=(None,userdic)
userlist.append(tmp)
return userlist
この記事のためにすべてのことだ、私は助け学習したいです