Skip to content

Instantly share code, notes, and snippets.

@cloverstd
Created December 26, 2019 18:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cloverstd/f732858e9cfffa5907a2ee5dc559f2e7 to your computer and use it in GitHub Desktop.
Save cloverstd/f732858e9cfffa5907a2ee5dc559f2e7 to your computer and use it in GitHub Desktop.
多线程
import requests
from Queue import Queue, Empty
import time
import threading
wait_q = Queue()
lock = threading.Lock()
success = list()
failed = list()
url = None
class Worker(threading.Thread):
def run(self):
while not wait_q.empty():
try:
item = wait_q.get(False)
except Empty:
continue
if not item:
continue
resp = requests.get(url)
result = resp.json()
lock.acquire()
success.append(result)
lock.release()
if __name__ == '__main__':
wait_q.put('1')
workers = [Worker() for i in xrange(500)]
for worker in workers:
worker.start()
for worker in workers:
worker.join()
print '*' * 10, 'success'
data = list()
for i in success:
data.append('{},{}'.format(i[0], i[1]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment