How does ThreadPoolExecutor().map differ from ThreadPoolExecutor().submit? How does ThreadPoolExecutor().map differ from ThreadPoolExecutor().submit? python-3.x python-3.x