Крылатый
Годно по памяти и константности https://randomascii.wordpress.com/2017/01/08/add-a-const-here-delete-a-const-there/
Крылатый
О! http://cpptruths.blogspot.ru/2017/01/folding-monadic-functions.html
Sergey
думаю с текущими реалиями хотелось бы увидеть реализацию как минимум на lockfree контейнере :) думаю наверняка будет быстрее asio
Artem
Локфри != производительность
Sergey
Согласен. Но можно сделать расслабленную модель, если потоков достаточно много. Вообще такие вещи как раз и пилятся с policy стратегиями
Sergey
Мне не нужно, чтобы было очень производительно) просто хотелось бы использовать качественный thread pool, из которого автор бы выжал побольше, чем просто cond variables.
Sergey
Заранее большое спасибо)
Aidar
Почему std::async не в тредпуле я не понимаю тачки исполняет
Aidar
Точнее это никак не оговорено
Aidar
Таски*
Aidar
Че это
Sergey
ещё раз спасибо) выглядит неплохо на первый взгляд)
Aidar
Это понятно что плодит
Aidar
Вопрос как раз про это был
Aidar
Го пуллреквестить в gnu++ std чтоле
Aidar
Майкрософты говорят сразу там тредпул прифигачили
Крылатый
Чо за gnu++?
Sergey
Правда он тоже на cond variables) в принципе я все равно boost везде таскаю) так что посмотрим)
Крылатый
Расширения? Фуфуфу
Aidar
Ну это лучшее что есть на данный момент
Aidar
Даже в плане дизайна
Крылатый
Aidar
Да наверное лучше треды и тредпулы руками создавать как деды делали
Крылатый
Sergey
кстати да, было бы круто прикруть хотя бы boost.coro ) насколько будет быстрее / медленнее / удобнее
Sergey
вроде в кишках asio boost.coro первой версии сидит
Aidar
Я наоборот против корутин в их сишарпном виде
Крылатый
Почему?
Nikita
Господа, чем же tbb не устроил?
babysitter
а, известный дядька, знаю такого
babysitter
они кореша со степановым
Nikita
Есть вариант с Apache 2.0
Square
Я чот не понял. Вам пул потоков или нонблокд очередь?
Square
Qthreadpool годный
Square
Но имхо проще inplace делать. Прям по факту
Square
Быстрее будет
Square
Заготовить нужное количество потоков перед стартом и юзать чо нить типа waitformultipleobject
Square
Если винда конечно
Square
Это самый быстрый вариант
Square
И лучше у этому хозяйству неблокируемую очередь
Square
Ы? Я просто подумал очередь для межпоточного обмена
Square
Собсно как раз для этой цели норм, поток ждёт когда ему подадут данные - отрабатывает - ждёт дальше. Старт потоков при загрузке приложения
Square
Или просто назовите конечную цель, может кто то подскажет более изящное решение.
Почитал, нужен пул потоков хедер-онли, никогда не встречал такого.
Aidar
Алгоритм:
while(true){
for(N){
Делать_что-то();
for(N)
Делать();
Делать();
}
Делать_другую_работу();
}
Aidar
Как лучше рапараллелить?
Aidar
По данным лучше
Aidar
Есть вариант другую работу отдельно пустить
Square
Aidar
Не
Aidar
Надо на std
Aidar
Вот опять же на нормальной реализации std::async на пуле было бы ваще нечего писатт
Sergey
Возвращаясь к сегодняшней теме. Посмотрите реализацию / интерфейс / тесты с асио
https://github.com/inkooboo/thread-pool-cpp
Кто что думает?
Sergey
Использует MPMCBoundedQueue, как я понял
Square
@JegernOUTT
https://github.com/bloomen/cxxpool/blob/master/src/cxxpool.h
Aidar
Вместо ГОрутин
Square
Ну вот сходу гуглится тредпул в хашнике
Aidar
Там с пулом
Anatoly
Трудоемкость алгоритма где for в for и все это в while, конеш аховая, но бывает надо наверное, да
Aidar
Мне нужно обработатьребра полного графа так что пофигу
Aidar
И это в цикле делать
Andrei
Смотря что за корутины, и что за компилятор.
Andrei
За нативные надо, за компиляторные стейтлесс не надо.
Andrei
Но в обоих случаях быстрее чем треды, разумеется.
Andrei
Ваще не понял в чём прикол библиотеки.
Andrei
Взяли обычную блокирующую очередь, добавили в пуш trylock, прикрутили тредпул и написали всяких штук, которые просто в стандарте не сделали типа then
Andrei
Разве так любая контора которая на плюсах пишет не делает сама?
Sergey
Хотя нет, я перепутал с другой библиотекой)
Sergey
Там повыше есть одна примитивная
Sergey
https://github.com/bloomen/cxxpool/blob/master/src/cxxpool.h
Andrei
Не, это реально на коленке, я про адобовскую.
Andrei
функциональности*
Andrei
Да нет, ничего не ждать, просто к ней было такое вступление текстовое, как будто это brand new решение.
Andrei
А на самом деле это просто то, как должно было быть изначально сделано в плюсах.
Andrei
Это хорошее решение. Сам так делал.
Andrei
Хотя в итоге всё равно сделал корутины.
Andrei
Ажно в 2014-15
Sergey
поделись? просто посмотреть красоту реализации корутин
Andrei
No way :D