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

реализация ThreadSafe функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ написание программ http://www.cyberforum.ru/cpp-beginners/thread928097.html
В С++ программы пишутся так же, как в делфи типа с сбрасыванием компонентов на форму с события свойствами в инспекторе объектов или по другому ?
C++ Форматирование текста всем привет. Дан текстовый файл, который содержит строки различной длины. Создайте новый файл, в котором сохраните исходный текст в отформатированном виде, т.е. в тексте не должно быть строк длиной, превышающей заданную, правый край текста должен быть выровнен за счет равномерного увеличения промежутков между словами. Разбивать строки разрешается только по концам слов. http://www.cyberforum.ru/cpp-beginners/thread928068.html
1. Найти наименьшее из чисел а1, 2а2, 3а3,…, 8а8 C++
Найти наименьшее из чисел а1, 2а2, 3а3,…, 8а8
C++ Программа, которая будет издавать звуки при обнаружении заданного числа, чисел, последовательности чисел на страницах браузера.
Здраствуйте, уважаемые форумчане. Обращаюсь к вам за помощью: Мне нужна программа, которая будет издавать звуки при обнаружении заданного мной числа, чисел, последовательности чисел на страницах браузера. Подскажите, пожалуйста, где можно скачать такую программу, или как сделать самому.
C++ обьясните пожалуйста! http://www.cyberforum.ru/cpp-beginners/thread928026.html
1111 = 15 & 1001 = 9 1001 = 9 Результат равен 9. как 1111 = 15? как 1001 = 9?
C++ Шаблонная функция параметры Подскажите, где можно посмотреть перечень возможных команд в шаблонных функциях вроде: template <class InputIterator, class T> typename iterator_traits<InputIterator>::difference_type count (InputIterator first, InputIterator last, const T& val) { typename iterator_traits<InputIterator>::difference_type ret = 0; // Вот это место! ... } .... } подробнее

Показать сообщение отдельно
Praktolock
 Аватар для Praktolock
58 / 58 / 0
Регистрация: 29.11.2011
Сообщений: 272
24.07.2013, 16:42     реализация ThreadSafe функции
Я чувствую, что ты упускаешь самый важный посыл в моих постах. Внимательно прочитай следующее. Не в коде дело, а в данных с которыми этот код работает, то есть например такая функция
C++
1
2
3
4
5
6
int veryimportantfuntcion(int a, int b)
{
 int c=a+b;      //неважно какой тут код,
 a=c*a*b;       //как мы видим он никаких данных кроме переменных
 return(a++);   //обьявленных внутри себя не меняет и не читает
};
Тут не нужно никаких критических секций, её могут хоть 100500 потоков одновременно запустить и ничего страшного не случится. Но если функция обращается к каким-либо данным из-вне, например так:
C++
1
2
3
4
5
6
void sortmassiv(int*massiv, int kolichestvoelementov)
{
 EnterCriticalSection(&cs);
 //тут сортируем массив
 LeaveCriticalSection(&cs);
};
То тут критическая секция нужна, ибо пока мы сортируем его, наш поток может быть прерван, и например длинна массива уменьшится, в то время как наша функция об этом не узнает, да и порядок нарушится и массив отсортируется неправильно

Добавлено через 4 минуты
Хочу посоветовать книгу Джеффри Рихтера "Создание эффективных win32-приложений с учетом специфики 64-разрядной версии windows". Там об этом есть
 
Текущее время: 16:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru