Python3.6でconcurrent.futuresで並列でhttp requestを出す
Python3.6でconcurrent.futuresを使って並列でhttp requestを投げているのですが、普通にfor文で1つずつリクエストを出しているときとあまり速度が変わらないようなのです。どうすれば並列に実行できますか?
urlopenはCPUバウンドな処理ではないかと思い、ProcessPoolExecutorにもしてみましたが、あまり変化は感じられませんでした。
import urllib.request as ur
import concurrent.futures
def concurrent_exe(): #concurrent.futureを使用
thread_pool_exe = concurrent.futures.ProcessPoolExecutor()
for v in range(10000):
future = thread_pool_exe.submit(access_example)
print(future.result(), v)
def access_example():
return ur.urlopen("http://example.com").read().decode("utf-8")[10:15]
def seq_exe(): # 普通のfor
for v in range(10000):
print(v, access_example())