Зависит от того, какой механизм вы используете для отслеживания событий файловой системы.
Каждый доступ к файлу генерирует уведомление внутри ядра.
Если вы используете общедоступный FSEvents API, слишком частые обновления объединяются в одно уведомление. В этом случае принимающая сторона управляется циклом выполнения , то есть обратным вызовом является не , вызываемый в новом фоновом потоке, или контекст потока ОС. Он запускается в указанном вами цикле событий, обычно это основной поток, который выполняет основной цикл обработки событий.
Если вы непосредственно подключитесь к /dev/fsevents
(см., Например, книга OS X ), вы получите все события в вызывающем потоке одно за другим, возможно, несколько событий, возвращенных одним вызовом.
Аналогичным образом, если вы вместо этого будете использовать производную от BSD kqueue
, вы получите несколько событий от вызова kqueue
, если события частые.
В любом случае ОС не запускает ваш обратный вызов в новом потоке / OS и не магически дублирует ваш поток, отслеживая активность файловой системы, чтобы они могли обрабатывать события одновременно.