Войти
ПрограммированиеФорумОбщее

Красивый способ создания потоков. (комментарии) (2 стр)

Страницы: 1 2 3 Следующая »
#15
10:49, 23 апр. 2013

Chaos_Optima

 delete (std::function<void()>*)_Func;
А это зачем? может без delete ?

#16
11:27, 23 апр. 2013

Andrey
> А это зачем? может без delete ?
нет нельзя (( ну точнее можно, но придётся извращаться ))

#17
11:37, 23 апр. 2013

Ghost2
> > расшаренные критические секции
> А как их можно расшарить?

Наверно, имелось ввиду shared memory :)

#18
12:32, 23 апр. 2013

Chaos_Optima
> нет нельзя (( ну точнее можно, но придётся извращаться ))
я не увидел в коде new :) Кстати, лучше написать без C-style cast:

delete reinterpret_cast<std::function<void()> *>(_Func);
#19
12:43, 23 апр. 2013

Andrey
> я не увидел в коде new :)
std::function<void()> *lv_Func = new std::function<void()>(_Func);
Andrey
> Кстати, лучше написать без C-style cast:
чем?

#20
12:51, 23 апр. 2013

Chaos_Optima
> чем?

Это устрарело, понимаешь :)

#21
12:56, 23 апр. 2013

innuendo
> Это устрарело, понимаешь :)
)))
просто Andrey в данном случае пофиг какой каст использовать (ну кроме динамик) поэтому я выбрал тот который короче пишется ))

#22
13:23, 23 апр. 2013

Chaos_Optima
>чем?
>в данном случае пофиг какой каст использовать
и устарело и C-style каст кастует все т.е. не безопасен, reinterpret_cast не убирает const. Т.е. меньше ошибок можно совершить, и не надо смотреть что использовать в данном случае. Кстати, Страуструп говорил что C-style cast может убрать вообще.
Ну и по коду лучше искать C++ style cast для дальнейшего рефакторинга, т.к. преобразование типов всегда плохо.
да, без new/delete придется хранить список функций для каждого созданного потока.

#23
13:37, 23 апр. 2013

Andrey
> reinterpret_cast
static_cast тогда уж

#24
13:59, 23 апр. 2013

Andrey
> и устарело и C-style каст кастует все т.е. не безопасен, reinterpret_cast не
> убирает const.
в данном случае это всё не важно. т.к. каст идет от viod* к типу

#25
15:34, 25 апр. 2013

Как говнокод можно назвать красивым подходом? Ведь уже сто лет есть нормальная стандартная реализация потоков.

#26
21:46, 25 апр. 2013

SNVampyre
> Как говнокод можно назвать красивым подходом?
почему ты считаешь это говнокодом?
SNVampyre
> Ведь уже сто лет есть нормальная стандартная реализация потоков.
я говорю не про реализацию потоков, а про их создание.

#27
23:39, 25 апр. 2013

Chaos_Optima
> почему ты считаешь это говнокодом?
Потому что это дублирование стандартного функционала, примерно как написать свой fstream.
Причём, если иногда могут писать обёртки над стандартными библиотеками, чтобы реализация не была в хедере (в частности для ускорения компиляции), то у тебя вся реализация висит кишками наружу, то есть смысл просто нулевой, не говоря уже об отсутствии кроссплатформенности.

#28
23:46, 25 апр. 2013

SNVampyre
> Потому что это дублирование стандартного функционала, примерно как написать
> свой fstream.
сравни

+ Cтандартная реализация
+ Моё решение

SNVampyre
> то у тебя вся реализация висит кишками наружу
я же не предлагаю готовую библиотеку )) это просто подсказка чтобы другие люди смогли поняв принцип работы создать свою версию, возможно более красивую
#29
6:55, 26 апр. 2013

Chaos_Optima
> > Как говнокод можно назвать красивым подходом?
> почему ты считаешь это говнокодом?
Присоединяюсь к SNVampyre.

Во-первых, код не кроссплатформенный, ну да ладно.
Во-вторых, приведите реальный пример использования Вашего LOCK? Обычно лочится определенный объект, и мьютекс (логично) должен принадлежать самому объекту (или - однозначно соответствовать данному объекту).
Ну и в третьих - если у Вас код не изобилует созданием потоков, логично все места по обращению к пулу потоков упаковать в один менеджер с осмысленными функциями, и не использовать малопонятные постороннему человеку макросы.

P.S.
Представьте, вы женились, забухали, уволились, наконец - просто забросили свой код на полгода-год.
Возвращаетесь к этой чудовищной каше макросов и начинаете почесывать межягодичные извилины - а этот макрос шо делает? Аааа... понял. А вот следующий? Ага - понятно, выше что там было - ну вооооот, ошибка тут у нас!!!

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.