кто может в двух словах объяснить что такое async и где можно применить?
асинк это способ паралелизации работы, он основан на том, что io операции могут выполняться параллельно на системном уровне, в рамках одного треда одного процесса.
глянь, например, на модуль select, который юзает юниксовый вызов select(). его работа проста, ты даёшь ему три списка дескрипторов, ожидающих чтения/записи/ошибки, получаешь три списка, которые готовы к тому, чтобы их читали/писали/давали ошибку. на основании этого можно построить простой асинхронный цикл, который будет работать с io