вторник, 7 июля 2009 г.

[comp.concurrency] Apple замутил какую-то штуку под названием Grand Central Dispatch

В своей новой операционке 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++ных лямбд попробовать представить… :(

2 комментария:

Dmitry Vyukov комментирует...

Установи Intel C++. Я уже немного поигрался в нём с лямбдами. Первые впечатления положительные.

eao197 комментирует...

Как только все текущие проекты доведу до запуска, так сразу и поставлю себе либо ICC, либо какой-нибудь новый GCC...

Но все равно жалко, что C++0x в этом году можно и не увидеть в виде стандарта :(