​​📄Не тонуть в горутине: особенности реализации одной и той же задачи на С и Go



Задачу всегда можно решить разными способами, особенно если дело касается разработки программного обеспечения. Цели можно достичь, используя разную логику кода, разные фреймворки и даже разные языки программирования.



Алексей Буреев, старший инженер по разработке ПО в YADRO, решил провести эксперимент. Он попробовал организовать пул потоков и event driven-архитектуру в рамках межпроцессного взаимодействия на разных языках. На Go, своем «рабочем» языке, и чистом С — низкоуровневом языке программирования. Для этого он заглянул «под капот» стандартных типов данных, которые уже были заботливо созданы разработчиками языка. В результате получился «сравнительный анализ» синтаксиса и возможностей двух языков в рамках одной задачи, которые привели инженера к интересным выводам.



Из статьи вы узнаете:



Как реализовать event driven-парадигму на С;

Как «нестандартно» использовать мьютексы;

Какие потенциальные проблемы с организацией пула потоков уже решены в Go «из коробки».



Читать статью



#языкипрограммирования