Всякий раз, когда я читаю о async
- await
, пример использования всегда, где есть пользовательский интерфейс, который вы не хотите замораживать. Либо все книги/учебники по программированию одинаковы, либо блокировка пользовательского интерфейса - единственный случай async
- await
, о котором я должен знать в качестве разработчика.
Есть ли примеры использования async
- await
для повышения производительности в алгоритме? Например, возьмите любой из классических вопросов интервью с программированием:
- Найдите ближайшего общего предка в двоичном дереве
- Учитывая
a[0]
,a[1]
,...,a[n-1]
, представляющие цифры номера базы-10, найдите следующее наибольшее число, которое использует те же цифры - Найдите медиану двух отсортированных массивов (т.е. медианное число, если вы должны их объединить)
- Учитывая массив чисел
1
,2
,...,n
с отсутствием одного номера, найдите недостающее число - Найти наибольшие 2 числа в массиве
Есть ли способ сделать это с помощью async
- await
с преимуществами производительности? И если да, то что, если у вас только 1 процессор? Тогда не ваша машина просто делит свое время между задачами, а не делает их в одно и то же время?