Grand Central Dispatch, или Операционная система из Кемерово-2

В одной известной американской компании очень забавная политика общения с прессой. Что-то комментировать может очень ограниченный круг лиц, практически не покидающих главный офис. Этого, наверное, вполне хватает узкому кругу доверенных американских же журналистов, а вот их коллегам из других стран предлагается читать пресс-релизы и черпать в них вдохновение. Наверное, в каком-то идеальном мире такая дискриминация сходит с рук, но в реальности, когда у других известных американских (и не только) компаний в других странах есть полноценные представительства. И они не только дают оперативные комментарии по ситуации на локальных рынках, но и плотно общаются с местной прессой.

Поэтому одной известной американской компании приходится прибегать к ряду уловок. Правда, если я расскажу о них, кое-кто в России может лишиться работы. Поэтому давайте представим, что ваш покорный слуга совершенно случайно оказался поутру рядом с Павелецким вокзалом. Там к нему подошел мужчина, подмигнул и спросил на чистом английским с калифорнийским акцентом: «Итак, молодой человек, слыхали ли вы про нашу Grand Central Dispatch?»

Как некоторые читатели, наверное, знают, компания Apple недавно выпустила новую версию операционной системы Mac OS X с романтическим названием Snow Leopard. Там появилось довольно много полезностей и красивостей, но о них, если хотите, поговорим в другой раз, а сегодня обратим внимание на главное новшество — Grand Central Dispatch. В Apple тоже столкнулись с проблемой недостаточно эффективного использования многоядерных процессоров, и, как водится, пошли своим путем. Настолько близким к тому, что я нафантазировал в посте Операционная система из Кемерово, что даже страшно стало от своей прозорливости (как раз дочитываю книжку «Человек, который знал все» — там герою несладко пришлось).

В чем суть? «Яблочники» отмечают, что переработка софта под требования времени занимает немало времени и средств, которых очень жалко. Плюс если на одном компьютере сходится несколько приложений с правильной многопоточностью, это снижает эффективность системы в целом, потому что каждый поток дерется за свои интересы не на жизнь, а на смерть. С какой стороны не посмотри — засада.

Так вот в Apple предлагают радикальное решение проблемы. Мол, ребята, сосредоточьтесь на коде приложения, а когда дойдет дело до мультипоточности — просто добавьте в код 15 инструкций, и все остальное — т.е. управление потоками, блокировку данных и т.д. — операционная система возьмет на себя. Для сравнения, если верить PDF на официальном сайте, интеграция многоядерности по старинке требует внедрения сотен инструкций и в пятьдесят раз больше времени.

В результате программа одинаково эффективно использует и одноядерный, и восьмиядерный процессоры. Разработчик экономит, пользователь торжествует. Правда, как печально сказал мужчина с калифорнийским акцентом, пока Grand Central Dispatch еще никем толком не используется, но как только раскушают — будет очень круто.

Очень, очень хотелось бы узнать ваше мнение, коллеги. Я, конечно, PDF проштудировал, и идея произвела на меня добротное впечатление. Однако, не будучи мегаспециалистом, мог какие-то нюансы пропустить. Просто чую, что у этой проблемы не может быть такого простого решения.