私の理解では、tpool はネイティブ スレッドのプールを提供し、Greenpool はグリーン スレッドのプールを提供します (基本的に、すべてのグリーン スレッドは単一のネイティブ スレッドにあります)。
tpool
def my_func(start_ident): print "start_ident:%s" % start_ident print "running in new thread: %s %s" % (start_ident != thread.get_ident(), thread.get_ident()) tpool.execute(my_func, thread.get_ident()
結果: 異なるネイティブ スレッド
start_ident:140735259603328 running in new thread: True 4616945664
グリーンプール
def worker(line): print "worker in thread %s" % thread.get_ident() return line pool = GreenPool() for result in pool.imap(worker, open("test.txt", 'r')): print result
結果: 緑のスレッドが同じネイティブ スレッドで実行される
worker in thread 140735259603328 worker in thread 140735259603328 worker in thread 140735259603328 worker in thread 140735259603328 .......
あるプールと別のプールをいつ使用するか教えてください。