Основной проблемой здесь является компилятор и часть ОС GCD.Чтобы запустить GCD, вам нужен компилятор для понимания блоков.Вы можете создать что-то, что работает аналогично при программировании, но оно не будет иметь такую же производительность вообще.С GCD вы можете создавать и ставить в очередь тысячи Блоков, и все же, будет только 2 или 4 потока, выполняющих эти блоки.Если вы реализуете высокоуровневую функциональность блоков без принятия их компилятором, я вижу единственный способ использовать потоки для «имитации» блоков.Тогда использование тысяч потоков в системе с 2-4 ядрами процессора приведет к впечатляющему снижению производительности из-за переключения контекста и использования памяти.
Не только вам нужно правильное расширение компилятора для поддержки GCD,но также вам нужно правильное расширение ОС для управления очередями GCD, в которые блокируются блоки.Вам нужно, чтобы ОС работала так, чтобы она управляла тем, сколько потоков исполняется, и когда и сколько из них активировать, когда доступны ядра ЦП, для программы, использующей GCD.С GCD потоки и очереди независимы.Потоки просто извлекают блоки из очередей (легких структур данных), но из любой из них.Поэтому не имеет значения, сколько там блоков, потому что они представляют собой только фрагменты кода и указатели, хранящиеся где-то в основной памяти.
Вы просто не можете реализовать все эти низкоуровневые функции из python.И только реализуя высокоуровневый «GCD-способ программирования», вы собираетесь делать очень медленные программы, или, возможно, даже невозможно выполнить на персональном компьютере.
Итак, во-первых, например, Cython может поддерживать GCD,ОС, которую вы хотите использовать тоже.В Linux есть реализация libdispatch, доступная для Devian.Но он реализует только часть компилятора, поэтому программа запускает столько потоков, сколько ядер в системе, минус один.Поэтому я думаю, что это все еще не хороший вариант.Кто-то должен добавить поддержку ОС Linux для GCD, возможно, в качестве модуля ядра.
Ничего не скажешь о Windows.Я действительно не знаю.
Итак, первым естественным шагом должно стать добавление и тестирование поддержки CGD в Cython для Mac OS.Оттуда вы можете создать нативную библиотеку Python, которая внутренне использует библиотеку de Cython GCD, чтобы предлагать блоки и очереди обычным программистам на python.добавить блоки и очереди в качестве нативной функции Python.Это было бы удивительно XD