Веб-фреймворк на основе Grand Central Dispatch (GCD)?

Можно ли создать веб-фреймворк наподобие Node.js (в смысле неблокирующего асинхронного режима) с помощью API-интерфейса dispatch_* Grand Central Dispatch? Поскольку GCD, наряду с llvm и clang, имеет открытый исходный код и был или портируется как для BSD, так и для Linux, я представляю, возможно ли вообще создать такую ​​структуру с нуля.


person ZhangChn    schedule 07.02.2012    source источник
comment
Я бы хотел это увидеть. В отличие от node.js, фреймворк, основанный на GCD, автоматически выигрывает от множества ядер.   -  person Tobias Kräntzer    schedule 28.03.2012


Ответы (1)


Абсолютно. На самом деле, создание таких фреймворков более высокого уровня (которые реализуют асинхронные сетевые сервисы или полноценные веб-фреймворки) было одной из первоначальных целей разработки GCD. GCD предоставляет «сантехнику», и вы разрабатываете API более высокого уровня, которые скрывают очереди как детали реализации; все, что вам действительно нужно, — это API-интерфейсы, принимающие блоки, при условии, что блоки также хорошо отображаются в API, который вы имеете в виду (в противном случае кортежи функций ptr/context вполне приемлемы).

person jkh    schedule 08.02.2012