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

Некорректная работа условных переменных в приведенном коде - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В файл записывается мусор. Подкорректировать код http://www.cyberforum.ru/cpp-beginners/thread1085876.html
Нужна помощь! В общем организована БД со структурами и целый перечень функций, которые её обслуживают. Всё работало, но что как-то пошло не так и теперь некорректно работает 4-ая функция: "Edit data". Находит, принимает, но после перезаписи затирает ёё мусором. Что интересно при редактировании 1-ой структуры - редактирует правильно саму структуру, но все остальное превращается в мусор. При...
C++ Лишняя скобка? Ругается на строку str = L"всё"; Так- error C2059: синтаксическая ошибка: ] \wchar\wchar\wchar.cpp 11 #include <iostream> #include "Vjnkak.cpp" int main() { int baitovwchar_t = sizeof(wchar_t); wchar_t str = L"tanya"; // Зачем и что L ????? std::cout << str; http://www.cyberforum.ru/cpp-beginners/thread1085874.html
C++ численное решения уравнения фредгольма второго рода
Подскажите,обсуждалось ли на форуме численное решение уравнения фредгольма второго рода?может у кого есть реализация метода последовательных приближений на си?
Используя интерполяционную формулу Ньютона, вычислить значение функции при заданных значениях аргумента с точностью до 0.001 C++
Нужно написать програму которая будит используя интерполяционную формулу Ньютона вычеслять значение функции. Задание: Значение аргумента: х1=1.4161; x2=1.4625; x3=1.4135; x4=1.470. Таблица значений: x: 1.415, 1.420, 1.425, 1.430, 1.435, 1.440, 1.445, 1.450, 1.455, 1.460, 1.465.
C++ Вывести на экраны все книги указанного автора http://www.cyberforum.ru/cpp-beginners/thread1085864.html
Дан список, содержащий данные о книгах - фамилия автора и название книги. Вывести на экраны все книги указанного автора. Помогите, хотя бы пример напишите
C++ Обращение к классу в статической библиотеке из консольного приложения. С++ По условию в решении 2 проекта: статическая библиотека и консольное приложение. В статической библиотеке я прописал класс Queue т.е. все его методы и его класс-наследователь Queue1. Мне нужно обратиться из консольного приложения к Queue. Подскажите, пожалуйста, как это сделать. подробнее

Показать сообщение отдельно
Bretbas
189 / 48 / 7
Регистрация: 05.08.2013
Сообщений: 768
Завершенные тесты: 1
31.01.2014, 21:57  [ТС]     Некорректная работа условных переменных в приведенном коде
в книге не написано зачем нужны именно мьютексы в условных переменных,просто там использованы примеры где они точно нужны для разделения общих данных между потоками.В примере,который я написал с "001а1а0..." мьютексы тоже необходимы,т.к нужно на одном и том же экране выводить результат двух потоков,то есть имеются разделяемые данные.
А к примеру в других задачах,где необходимы условные переменные,но не нужны мьютексы как быть?
К примеру задача с которой я столкнулся недавно:
Есть 3 потока(один из них главный).В главном потоке я завожу второй поток и жду его завершения.Второй поток имеет в своем теле цикл передвижения фигуры.Причем перед выполнения этого цикла заводится еще один поток,который отслеживает нажатие клавиши -вверх,вниз,влево,вправо,escape.Суть в том,что мне нужно по нажатию на escape завершить третий поток(отслеживание нажатие),завершить второй поток ДОСРОЧНО,то есть не дождаться завершения цикла передвижения фигуры.И следовательно вернуться в третий главный поток.
Фуххх...)Вроде все рассказал)Суть в том,что я пока что использую winapi и завершаю досрочно второй поток с помощью функции TerminateThread(HANDLE).Но я знаю,что эту функцию не рекомендуется использовать,поэтому я решил перейти на стандартную библиотеку C++ и использовать условные переменные в данном случае.То есть по нажатию на кнопку escape,третий поток должен послать сигнал во второй поток,чтобы тот в свою очередь завершился и отдал управление в третий главный поток.Вот как то так нужно наверное сделать.
А теперь собственно вопросы:
1.Как реализовать такую систему потоков?
2.Зачем здесь мьютексы,если здесь нет разделяемых данных?
3.Может здесь вовсе не нужны условные переменные,и можно реализовать данную систему как-то подругому?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru