Встречается на собеседованиях • сегодня
Можно ли на потоках распараллелить задачу
Да, в Python можно распараллелить задачу с помощью модуля threading, но из-за GIL (Global Interpreter Lock) потоки эффективны только для I/O-bound задач (например, сетевые запросы, работа с файлами). Для CPU-bound задач лучше использовать multiprocessing.
Пример с threading для I/O-bound задачи:
python
import threading
def download(url):
print(f"Downloading {url}...")
# Имитация I/O операции
time.sleep(2)
print(f"Finished {url}")
urls = ["url1", "url2", "url3"]
threads = []
for url in urls:
t = threading.Thread(target=download, args=(url,))
t.start()
threads.append(t)
for t in threads:
t.join()Для CPU-bound задач используй multiprocessing:
python
from multiprocessing import Pool
def process_data(data):
return data * data
if __name__ == "__main__":
with Pool(4) as p:
results = p.map(process_data, range(10))
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы