2017-02-18 6 views
1

リストがあります。コードブロックを実行したいのですが、リストは数千アイテム長く、時間がかかりすぎますそれらを繰り返します。リスト内のすべての項目に対して同時にコードブロックを実行する方法

スクリプトで同時にそのリストのすべての項目をチェックする方法はありますか?

私のコードは次のようになります。

def check_url(url_loc): 
    response1 = requests.get(url_loc) 
    time.sleep(10) 
    response2 = requests.get(url_loc) 
    if response1 != response2: 
     print(url_loc + "has changed go check now:" + url_loc) 
    else: 
     pass 

while True: 
    all(check_url(loc) for loc in sitelocations) 
+1

は、あなたがあなたの関数で 'time.sleep'を持っていないのはなぜ考えてみましょうか?それは物事を遅らせるだろう。その機能は何をすべきか? – qxz

+0

@qxzこのコードは、10秒間隔でURLを比較しているようですので、スリープします。 – bli

答えて

0

あなたは本当にあなたがスレッドを使用することができ、同時にそれをしたい場合。 ここにスレッドに関するウェブサイトがあります:https://docs.python.org/3.4/library/threading.html しかし、もっと簡単な方法があると確信しています。スレッディングは、すべてが完了してから実際に複雑になるまで何度も繰り返していくようなものです。 あなたのコードをスピードアップしようと思うかもしれません。 IDLEを使用している場合は、常に遅くなり、実際には正しい時間にはなりません。それは実際に速く行くことができます。 私はこれが役立つことを願っています。

+0

Pythonのスレッドは同時に実行されず、GILを介してスケジュールされます。スレッドは、データのプッシュと待機が多い場合にはI/Oコールに役立ちますが、実際にはコンピューティングタスクのパフォーマンスが低下します。 – zwer

関連する問題