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

Потоки.События.Не могу разобраться - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Циклические алгоритмы. Сложное условие завершения цикла http://www.cyberforum.ru/cpp-beginners/thread1115866.html
Помогите написать программу на языке с++ (borland c++) задача 22. Правила Форума: 5.18 Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.Перепечатывайте задание на форум...
C++ Создать класс Мебель Создать класс Mebel, содержащий следующие элементы: - поле «производитель» char* Vendor; - поле «материал» char* Material; - метод получения производителя char* GetVendor(); - метод получения материала char* GetMaterial(); - конструктор с параметрами Mebel(char* Vendor, char* Matrial); Унаследовать от класса Mebel класс Table, содержащий элементы: - поле «кол-во ножек» int... http://www.cyberforum.ru/cpp-beginners/thread1115857.html
C++ Поправить переменные в программе
Добрый вечер, уважаемые программисты. Есть программа для подсчёта математических уравнений, но там разные переменные и я никак не могу их соединить вместе, что бы всё работало. Очень буду благодарен за любую помощь. Методические указания: 1. Найти корень уравнения 1.4^x - x =0 с точностью 10^(-5) 2. Начало отрезка А принять равным 0 3. Определить количество итераций при вычислении каждым...
Печать в строку C++
Доброго времени суток. Подскажите пожалуйста, как в плюсах печатать в строку? Допустим у нас есть строка: char command; и во время работы программы она формируется (строка нужна для прямой передачи в командную строку параметров запуска) Допустим приложение, конфиг к которому формируем app.exe: command << "app.exe ";
C++ Могу ли я использовать несколько констант? http://www.cyberforum.ru/cpp-beginners/thread1115823.html
Возник такой вопрос, могу ли я сразу несколько констант объявить в программе и использовать их все в одной операции ? Вот написал программу которая перевод рубли в доллары и наоборот, как сделать, чтобы она выполняла еще и такие операции , как перевести например франки в евро или йены в фунты? #include "std_lib_facilities.h" int main() { const double rub = 36.2618; int length=1; char unit...
C++ Не работает цикл for Всем привет! Необходимо было написать реализацию RSA, однако возникли проблемы с циклом for: for (i=2; i<=funcN; i++) if ((evklid(i,funcN) == 1) and (fmod(i,funcN) != 0)) k_open = i; Полный исходник: #include <iostream.h> #include <locale.h> #include <math.h> подробнее

Показать сообщение отдельно
Убежденный
Системный программист
Эксперт С++
15107 / 6802 / 1073
Регистрация: 02.05.2013
Сообщений: 11,118
Завершенные тесты: 1
11.03.2014, 00:20     Потоки.События.Не могу разобраться
Цитата Сообщение от VASYA_A Посмотреть сообщение
То есть , в функции Thread - сначала с помощью WaitForSingleObject ждём , когда событие hevent2 станет готовым к исполнению, далее в цикле считаем числа и SetEvent - состояние событие поставили в сигнальное
а в мейне всё наоборот
Ну да, вроде того.

Цитата Сообщение от VASYA_A Посмотреть сообщение
я вообще , если честно , не могу никак понять , что же это за события - hEvent1, hEvent2 ? Пожаалуйста , можете объяснить , хотя бы немного , простыми словами ? Я чисто суть не могу уловить
Событие - это объект, который может находиться либо в сигнальном (установлено),
либо в несигнальном (сброшено) состоянии. Пока событие сброшено, любой поток,
который вызовет на нем wait-функцию (WaitForXXXX), сразу же будет отправлен в
"спячку". Т.е. пассивное ожидание. Как только событие перейдет в сигнальное
состояние, поток выйдет из спячки и продолжит работу. Это удобно использовать
для синхронизации потоков, а также для ожидания э-э... событий. Видите -
название Win32-событий как нельзя лучше отражают их суть.

События бывают двух видов - synchronization event и notification event.
То же самое еще называют auto-reset event и manual-reset event, то есть,
авто-сброс и ручной сброс (состояния). Manual-reset event прост - вы вручную
устанавливаете и сбрасываете событие, и его состояние не меняется, пока вы
сами не сделаете это. Эта особенность часто используется для уведомления
одного или нескольких потоков - если несколько потоков ждут одного и того
же события, то при переводе его в сигнальное состояние все они проснутся.
Хоть и нельзя предугадать, кто раньше, а кто позже.

Auto-reset event работает чуть по-другому.
Когда кто-то просыпается из ожидания на событии с авто-сбросом, то это
событие сразу автоматически сбрасывается. Т.е. только один поток пробуждается.
Так, например, можно гарантировать, что только один поток войдет в критический
участок кода. С manual-reset event все потоки сразу ринулись бы в этот
участок и синхронизация была бы нарушена.

Ай, ну в общем, что я объясняю тут, все равно никогда не напишу лучше,
чем в правильных книгах по системному программированию.
Лучше один раз прочесть, чем сто раз спросить на форуме, уж поверьте
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru