def multithread_download_photos(photos):
from concurrent import futures<EOL>global counter<EOL>counter = len(photos)<EOL>cpu_num = multiprocessing.cpu_count()<EOL>with futures.ThreadPoolExecutor(max_workers=cpu_num) as executor:<EOL><INDENT>for photo in photos:<EOL><INDENT>executor.submit(download_photo, photo)<EOL><DEDENT><DEDENT>
Use multiple threads to download photos

    :param photos: The photos to be downloaded
    :type photos: list of dicts