Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Segaman
2 / 2 / 1
Регистрация: 03.09.2014
Сообщений: 145
#1

Многопоточные функции - C++

13.01.2016, 13:02. Просмотров 212. Ответов 3
Метки нет (Все метки)

Написал программу, которая обрабатывает большой объём информации и столкнулся с проблемой производительности.
Начал копать в сторону многопоточности, но есть несколько вопросов, ответ на которые не просто найти.
Хочу спросить опытных программистов.
Я пишу программу на С++ для шиндовс.

1.Существуют ли какие-то запреты на чтение\запись данных нескольких потоков из одного места?
2.Если несколько потоков вызывают одну функцию, будут ли обьявленные в ней переменные создаваться отдельно для каждого потока или нет?

Я просто пришел из старых консолей, там с этим строго. А на компе не разу таким не промышлял.
Еще наткнулся на OpenMP.

3.Стоит ли мне, новичку, юзать эту плюшку или ограничиться CreateThread?
Заранее спасибо
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2016, 13:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Многопоточные функции (C++):

Многопоточные библиотеки - C++
Всем добрый вечер! Разрабатываю приложение, которое в конечном итоге должно работать в несколько потоков, и не понимаю как реализовать. ...

Многопоточные консольные приложения - C++
подскажите сайт\книжку где почитать (обязательно с примерами) про многопоточные приложения, и только с консольными примерами. в этой...

Будут ли мои многопоточные решения кроссплатформенными? - C++
Решил начать изучать многопоточность недавно. С чего лучше начать изучение? Подскажите литературу по этой теме, желательно что-нибудь...

Многопоточные программы, распараллеливание при чтении файла - C++
Добрый день. Прошу помощи начинающей программистке. )) Есть программа, считающая количество байт бинарного файла; Надо создать два потока...

Функции. Как после одного возвратного значения функции отталкиваться от возврата другой функции - C++
Написал код, в котором 2 функции одна возвращает стринговое значение, вторая должна бы вернуть значение, отталкиваясь от первой. Возможно...

Многопоточные приложения - Delphi
Создайте приложение, которое в фоновом режиме проверяет правильно введенные числа. На главной форме разместите два многострочных редактора....

3
Croessmah
Эксперт CЭксперт С++
13411 / 7561 / 855
Регистрация: 27.09.2012
Сообщений: 18,611
Записей в блоге: 3
Завершенные тесты: 1
13.01.2016, 13:05 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Segaman Посмотреть сообщение
1.Существуют ли какие-то запреты на чтение\запись данных нескольких потоков из одного места?
По сути, запретов нет, это же Ваш процесс и Ваша память.
Но нужно следить за синхронизацией.
Цитата Сообщение от Segaman Посмотреть сообщение
2.Если несколько потоков вызывают одну функцию, будут ли обьявленные в ней переменные создаваться отдельно для каждого потока или нет?
У каждого потока свой стек, так что стековые - будут.
Также есть thread_local переменные.
Цитата Сообщение от Segaman Посмотреть сообщение
3.Стоит ли мне, новичку, юзать эту плюшку или ограничиться CreateThread?
Может сразу взять компилятор поновее с поддержкой c++11 и использовать std::thread?
Ну или boost::thread.
3
Mesteriis
373 / 156 / 40
Регистрация: 08.08.2015
Сообщений: 1,107
Завершенные тесты: 1
13.01.2016, 13:09 #3
Цитата Сообщение от Croessmah Посмотреть сообщение
std::thread?
Ну или boost::thread.
Кстати по этому поводу, как по твоему что лучше? или это по сути одно и тоже, так как из буста он приехал в STL?
0
Evg
Эксперт CАвтор FAQ
17933 / 6158 / 408
Регистрация: 30.03.2009
Сообщений: 16,906
Записей в блоге: 27
13.01.2016, 18:03 #4
Цитата Сообщение от Segaman Посмотреть сообщение
3.Стоит ли мне, новичку, юзать эту плюшку или ограничиться CreateThread?
Заранее спасибо
Если под плюшкой подразумевается OpenMP, а программа сравнительно простая, то стОит. Но надо при этом понимать, что если есть хотя бы базовые навыки по созданию потоков вручную (через CreateThread, а не boost::thread), то любая надстройка над потоками (те же boost::thread и OpenMP) будут пониматься намного глубже
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2016, 18:03
Привет! Вот еще темы с ответами:

Многопоточные приложения - C Linux
Помогите пожалуйста написать такую программу Создать многопоточное приложение, в котором поток родитель создает файл и создает три...

Многопоточные методы - Java SE
Здраствуйте. Проблема такова: Делаю сервак, он разделяется на комнаты в которых находятся пользователи. Сервер многопоточный, но...

Многопоточные приложения - Delphi
Доброго времени суток всем! Кто-нибудь может дать дельные ссылки на информацию/исходник по многопоточным приложениям?

Многопоточные запросы POST\GET - C++ Qt
Здравствуйте. В MDI-приложении на Qt требуется организовать многопоточную работу с сетью. Пользователь создает дочернее окно, производит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
13.01.2016, 18:03
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru