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

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

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

Показать сообщение отдельно
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
31.01.2014, 12:15
Цитата Сообщение от Bretbas Посмотреть сообщение
зачем тут
std::this_thread::sleep_for(std::chrono::seconds(1));
Для того что бы успеть увидеть что на консоль выводится, а то у тебе в коде в циклах все с огромной скоростью выводится.
Цитата Сообщение от Bretbas Посмотреть сообщение
и вот это
std::srand(static_cast<unsigned>(time(nullptr)));
Фактически, тоже самое что и srand(time(0)) - в любой книге для начинающих про это пишут. Можешь не использовать - здесь не обязательно.
Цитата Сообщение от Bretbas Посмотреть сообщение
И зачем нужны мьютексы в условных операциях
Функция wait принимает в своем первом аргументе std::unique_lock<std::mutex>& : std::condition_variable::wait - без мютекса никак не обойтись - это тоже должно должно было объясняться в книге.
В общем, в твоем коде нет синхронизации вывода на консоль, - скорее всего wait не успевает захватить мютекс. А в то время второй цикл в функции threadfun его успешно захватывает, меняет переменную n и выводит не то что ожидалось. Вот как раз задержка тут и помогает.

Добавлено через 5 минут
Вот результат работы моего кода:
1a1a001a000001a1a1a1a1a1a1a01a01a001a001a001a1a01a01a01a1a1a01a1a01a1a01a1a
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru