> Ну это если окружение позволяет использовать асинхронную модель.Я говорю о GTK, в котором эта модель присутствует.
> А вот есть у нас
> допустим
То есть реальных примеров нет?
> Например, хочется организовать взаимодействие с MySQL посредством libmysqlclient. Как будем жить?
Опять таки, много ли гуевых приложений выполняют длительные блокирующие вызовы? Нет, не много. Большинству достаточно idle_add. Уж поверьте, я использую gtk достаточно долго и потоки нужны были крайне редко. Не отрицаю, необходимость есть, но чтобы возводить потоки в ранг мастхев вещей надо испытывать недостаток опыта и образования.
> Да и структура приложения в асинхронной модели зачастую заметно сложнее.
Наоборот, не надо думать о синхронизации. А это убирает львиную долю наворотов. Не надо думать в контексте какого потока будет выполняться обработчик, не надо думать о порядке вызова обработчиков -- все прозрачно и предсказуемо. C gtk вообще не надо думать -- любая обезьяна способна освоить тулкит в течение дня.
Какой кривой и невзрачный gtk есть на вид и на вкус, но в легкости понимания и освоения ему не откажешь. И огромная заслуга в этом -- отказ от потоков в пользу асинхронной модели.