В своей новой операционке Snow Leopard компания Apple реализовала какую-то штуку для облегчения создания многопоточных программ под названием Grand Central Dispatch (GCD). С ходу найти какую-нибудь документацию на эту тему или примеры кода я не смог. На поверхности лежит только рекламный буклет Grand Central Dispatch: A better way to do multicore.
Насколько я смог понять, суть всего этого дела в следующем: синтаксис языков C, Objective-C и C++ расширяется для поддержки специальной конструкции – блока кода. Блоки содержат код, который может исполняться на своем контексте. Блоки провязываются с помощью очередей. Распределяются блоки на исполнение с помощью диспетчера ОС, который рулит пулами потоков. И вот этот самый диспетчер + еще несколько инструментов для отладки и профилирования подобных программ являются неотъемлемой частью Mac OS X Snow Leopard.
Такие вот дела. Нужно будет последить за этой темой. Интересно будет взглянуть на исходники примеров использования GCD.
PS. Ну когда же появится C++0x с лямбдами. Можно было бы агентов в SObjectizer в виде C++ных лямбд попробовать представить… :(
Установи Intel C++. Я уже немного поигрался в нём с лямбдами. Первые впечатления положительные.
ОтветитьУдалитьКак только все текущие проекты доведу до запуска, так сразу и поставлю себе либо ICC, либо какой-нибудь новый GCC...
ОтветитьУдалитьНо все равно жалко, что C++0x в этом году можно и не увидеть в виде стандарта :(