|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
Мне не нравится C++ Multi-threading из- за большого количества кода, за которым теряется суть программы. К тому же на него бочку катят из-за сложности отладки и большого количества потенциальных ошибок (ненадежности). OpenMP не позволяет работать с циклами, у которых окончание итераций по условию (например, окончание файла или достижение заданного результата). Intel Trading Blocks- нет литературы на русском, да и код превращается в адовы кирпичи. Что посоветуете? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2017, 22:40 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
_beginthreadex() рекомендую. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2017, 22:49 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
AlekseySQLЧто посоветуете? Начать с чего попроще перед тем, как лезть в многопоточку. Учебники там разные... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2017, 23:30 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
AlekseySQL, multutheading это не опция С++ а свойство ОС (Linux, Windows) и выбирать надо сначала то под что будешь кодить в будущем. Тоесть это не вопрос вкуса а скорее обстоятельство или начальные условия. P.S. Посмотри Boost.Thread. Возможно с некоторой натяжкой сойдет за то что тебе нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 00:46 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
AlekseySQLМне не нравится C++ Multi-threading из- за большого количества кода, за которым теряется суть программы. К тому же на него бочку катят из-за сложности отладки и большого количества потенциальных ошибок (ненадежности). Это касается любого ЯП. Это обратная сторона многопоточности. AlekseySQLЧто посоветуете? Стандартные средства С++ std::async std::thread и все что связано с синхронизацией Можешь свою обертку написать. Делаешь менеджер потоков, класс "задача" и дальше ты генеришь задачи, а менеджер рассовывает задачи по потокам. Можешь почитать например как в C# это устроено, класс Task<T>. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 06:54 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
maytonAlekseySQL, multutheading это не опция С++ а свойство ОС (Linux, Windows) и выбирать надо сначала то под что будешь кодить в будущем. Тоесть это не вопрос вкуса а скорее обстоятельство или начальные условия. P.S. Посмотри Boost.Thread. Возможно с некоторой натяжкой сойдет за то что тебе нужно. Вообще- то уже давно созданы кроссплатформенные инструменты. Например, тот же Boost.Thread И среди этих кроссплатформенных средств я как раз и выбираю. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 10:29 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
Dima TAlekseySQLМне не нравится C++ Multi-threading из- за большого количества кода, за которым теряется суть программы. К тому же на него бочку катят из-за сложности отладки и большого количества потенциальных ошибок (ненадежности). Это касается любого ЯП. Это обратная сторона многопоточности. AlekseySQLЧто посоветуете? Стандартные средства С++ std::async std::thread и все что связано с синхронизацией Можешь свою обертку написать. Делаешь менеджер потоков, класс "задача" и дальше ты генеришь задачи, а менеджер рассовывает задачи по потокам. Можешь почитать например как в C# это устроено, класс Task<T>. Второе утверждение противоречит первому :) В С# оказывается не все так плохо: есть уже более высокий уровень абстракции в виде задач. Разумеется под C# писать не буду, и обдумываю написать свой менеджер задач. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 10:34 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
AlekseySQLВторое утверждение противоречит первому Не противоречит, просто ты еще не пробовал асинхронные алгоритмы отлаживать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 10:48 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
AlekseySQLМне не нравится C++ Multi-threading из- за большого количества кода, за которым теряется суть программы. Что посоветуете? Я как раз именно библиотеку многопоточности C++ и посоветую. std::thread и так далее, бывшая boost thread. Она просто великолепна. Я уверен, что ты не ее имел в виду в первой строке. Open MP конечно хорошо, но это для тупых математикав, которым лень программировать. Ну и что из заставит взяться за C++ - не понятно, у них есть великолепный Fortran, который очень хорошо всё это делает. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 10:59 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
maytonAlekseySQL, multutheading это не опция С++ а свойство ОС (Linux, Windows) и выбирать надо сначала то под что будешь кодить в будущем. уже нет, уже у нас есть встроенная ванильная многопоточность. Переносимая, стандартная. С С++11. maytonP.S. Посмотри Boost.Thread. Возможно с некоторой натяжкой сойдет за то что тебе нужно. не нужен уже Boost.Thread, он уже вошел в стандарт. конечно, это если у вас есть с++ компилятор. VC уже поддерживает. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 11:05 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
MasterZiv, Про Open MP... Это очень классная вещь, но она для очень тупых случаев. Представьте, что вам нужно просчитать среднюю зарплату по всему населению Земли... это тупо много, поэтому будет тупо долго, но если разбить на N кусков и отдать каждый своему потоку, а потом еще раз усреднить, то будет тупо в N раз (почти) быстрее. Вот такие тупые задачи решает Open MP. но зато она делает это автоматически, что очень приятно. часто вы такие задачи решали? я лично - ни разу за всю жизнь и карьеру. так что для программирования на C++ оно практически не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 11:18 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
MasterZivЯ как раз именно библиотеку многопоточности C++ и посоветую. std::thread и так далее, бывшая boost thread. Она просто великолепна. Сейчас изучаю книжку "Параллельное программирование на С++ в действии". Как изучу отпишусь с вопросами :) MasterZivMasterZiv, Про Open MP... С умным человеком и поговорить приятно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 11:51 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
AlekseySQLMasterZivЯ как раз именно библиотеку многопоточности C++ и посоветую. std::thread и так далее, бывшая boost thread. Она просто великолепна. Сейчас изучаю книжку "Параллельное программирование на С++ в действии". Как изучу отпишусь с вопросами :) Во, это -- самая правильная книжка. Мало того, что хорошо написана, так ещё и написана именно автором этой библиотеки (подсистемы поддержки многопоточности в стандартной библиотеке С+) - Anthony Williams. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 12:13 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
MasterZivуже нет, уже у нас есть встроенная ванильная многопоточность. Переносимая, стандартная. С С++11. И при этом она совершенно отстойна в том плане, что заставляет делать прыжки в ширину для в общем-то тривиальных (в нативном API) задач. Например, не даёт подождать завершения одного любого потока из пула. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 12:13 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
MasterZivAlekseySQLпропущено... Сейчас изучаю книжку "Параллельное программирование на С++ в действии". Как изучу отпишусь с вопросами :) Во, это -- самая правильная книжка. Мало того, что хорошо написана, так ещё и написана именно автором этой библиотеки (подсистемы поддержки многопоточности в стандартной библиотеке С+) - Anthony Williams. Читал в оригинале на английском. Скажу лишь, что она совсем не для новичков. Мало того, тема атомарных операций и, в частности, memory_order'а не в совсем понятной манере, что приходилось "напрягаться" сверх нормы, чтобы осилить. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 12:49 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMasterZivуже нет, уже у нас есть встроенная ванильная многопоточность. Переносимая, стандартная. С С++11. И при этом она совершенно отстойна в том плане, что заставляет делать прыжки в ширину для в общем-то тривиальных (в нативном API) задач. Например, не даёт подождать завершения одного любого потока из пула. Чего? JOIN и всё... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 16:44 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
NekZMasterZivAnthony Williams. Скажу лишь, что она совсем не для новичков. Да ну, всё разжёвано и в рот положено, начиная с азов. NekZМало того, тема атомарных операций и, в частности, memory_order'а не в совсем понятной манере, что приходилось "напрягаться" сверх нормы, чтобы осилить. Ну, это -- вообще далеко не самая простая и очевидная вещь, и на самом деле не самая нужная для конечного разработчика. В принципе, её не обязательно понимать глубоко, или даже вообще понимать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 16:51 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
MasterZivЧего? JOIN и всё... Ну да, ну да. Вот только join это метод std::thread, который ждёт завершения этого конкретного потока. А теперь внимательно перечитывай "любого одного потока" до просветления. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 17:39 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMasterZivЧего? JOIN и всё... Ну да, ну да. Вот только join это метод std::thread, который ждёт завершения этого конкретного потока. А теперь внимательно перечитывай "любого одного потока" до просветления. В смысле -- ХОТЯ БЫ одного ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 19:18 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
MasterZivВ смысле -- ХОТЯ БЫ одного ? Дословно. У тебя есть 20 потоков и ты ждёшь завершения любого из них. Аварийного или штатного - без разницы. Как такое обеспечить в случае std::thread? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 19:21 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMasterZivВ смысле -- ХОТЯ БЫ одного ? Дословно. У тебя есть 20 потоков и ты ждёшь завершения любого из них. Аварийного или штатного - без разницы. Как такое обеспечить в случае std::thread? Хоть std::thread появился и на том спасибо. Уже не надо кучу #ifdef WIN32 ... По хорошему еще надо std::thread_pool и там это реализовать. Много еще чего надо, но стандартописатели не торопятся. А этот вопрос вроде как можно через std::thread::native_handle порешать. Без std::thread прыгать гораздо шире надо было. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 19:39 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMasterZivВ смысле -- ХОТЯ БЫ одного ? Дословно. У тебя есть 20 потоков и ты ждёшь завершения любого из них. Аварийного или штатного - без разницы. Как такое обеспечить в случае std::thread? В стандарте есть "продвинутые" потоки future/async. Например, есть 4 потока и ждешь пока освободиться любой из них успешного или аварийного, и так 20 раз. http://coliru.stacked-crooked.com/a/d1d43d9111f669be Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 20:31 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
AlekseySQLМне не нравится C++ Multi-threading из- за большого количества кода, за которым теряется суть программы. А все же, что ты имел в виду конкретно? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 21:23 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
Вася УткинНапример, есть 4 потока и ждешь пока освободиться любой из них успешного или аварийного, и так 20 раз. Опрос состояния всех потоков в цикле. Прэлееестно. Это даже не прыжки в ширину, это бег на месте с препятствиями. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 21:31 |
|
Какой инструмент многопоточности используете?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovВася УткинНапример, есть 4 потока и ждешь пока освободиться любой из них успешного или аварийного, и так 20 раз. Опрос состояния всех потоков в цикле. Прэлееестно. Это даже не прыжки в ширину, это бег на месте с препятствиями. К тому же никто не обещал что там есть какие-то потоки. Больше похоже на node.js стиль ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 22:26 |
|
|
start [/forum/topic.php?fid=57&msg=39396211&tid=2017683]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
23ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 134ms |
0 / 0 |