Встречается на собеседованиях • сегодня

Можно ли на потоках распараллелить задачу

Да, в 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))
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы