Если вы специально не кодируете какую-либо блокировку или не вызываете функцию (включая системные функции), которая имеет какую-то блокировку (например, открытие одного и того же файла для монопольного доступа к записи и т. Д.), Тогда нет способа " блокировать "другие темы". В c или c ++ нет автоматической блокировки функций.
Если обратный вызов выполняет sleep (3600), это не будет блокировать другие потоки. Каждый поток будет вводить обратный вызов и выполнять сон (3600).
Если вы хотите, чтобы потоки ожидали выполнения критического кода, вы должны закодировать механизм блокировки самостоятельно. Обычно вы активируете механизм блокировки перед выполнением кода (обычно называемый «блокировкой»), а затем обычно отключаете блокировку после выполнения кода («разблокировка»). Для этого Linux-кодеры обычно используют мьютексы или атомарные операции gcc.
Похоже, вам нужно прочитать основную документацию о потоках и многопоточном коде и начать с этого. Вот одна из миллиона статей об основах работы с потоками: текст ссылки