[#] Передача сообщений между потоками. Классические блокирующие алгоритмы
habrabot(difrex,1) — All
2016-02-09 11:30:06


![][1]Когда-то я вылез из песочницы с совочком в руке и [постом][2] о неблокирующих очередях и передаче данных между потоками. Тот пост был не столько об алгоритмах и их реализации, сколько об измерении быстродействия. Тогда же мне в комментариях [задали][3] совершенно [резонный][4] вопрос об обычных, блокирующих алгоритмах передачи — насколько они медленнее и вообще как выбрать оптимальный алгоритм под конкретную задачу. Я конечно обещал и с энтузиазмом принялся за дело, даже получил забавные результаты, однако… какой-то изюминки не хватало, выходило скучно и плоско. В результате мой внутренний перфекционист обьединился с моим нескрываемым прокрастинатором и вдвоем они меня одолели, пост надолго осел в черновиках и даже совесть уже не вздрагивала при виде забытого заголовка. Однако все меняется, появляются новые технологии, старые исчезают в архивах, и я вдруг решил что пришло время отдавать долги и сдерживать обещания. В качестве наказания мне пришлось все переписать с нуля, если скупой платит дважды, то ленивый дважды переделывает, так мне и надо. Да, за КДПВ извиняюсь — оно конечно совсем из другой предметной области, но для иллюстрации взаимодействия между потоками подходит тем не менее идеально. [Читать дальше →][5]

[1]: https://habrastorage.org/files/930/f52/4cc/930f524cc0e94fa6a429d9337368b180.png
[2]: http://habrahabr.ru/post/209824/
[3]: https://habrahabr.ru/post/209824/#comment_7226498
[4]: https://habrahabr.ru/post/209824/#comment_7226846
[5]: https://habrahabr.ru/post/211717/#habracut