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

Причины последовательной работы потоков? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка parameter declared 'auto' http://www.cyberforum.ru/cpp/thread1832823.html
Код: #include <algorithm> #include <iostream> #include <set> #include <vector> /////////////////////////////////////////////////////////////////////////////// class T_official; /////////////////////////////////////////////////////////////////////////////// typedef T_official * T_off_tree; typedef std::vector < T_off_tree > T_off_trees;
C++ При пересечении процента с долларом в консоли доллар должен исчезнуть Доброго времени суток. Не так давно начал изучать основы OpenGL, а параллельно с ним ООП и вектора, что идёт не очень успешно. Объединить у меня это никак не получается, так как я не знаю, как можно взаимодействовать с двумя объектами одного класса (вроде так). Читал множество статей про ООП в интернете, ничего особо не понял, так как я не очень умный. А теперь задача. Имеется код. Вместо... http://www.cyberforum.ru/cpp/thread1832213.html
Графические библиотеки C++
Добрый день. Недавно решил начать программировать какую-нибудь простенькую 3D игру, но столкнулся с проблемой. Не могу решить какую графическую библиотеку использовать. Просмотрел множество высокоуровневых графических библиотек, но по ним почти нет никакого материала в интернете, только если документации на английском. Так же, хотелось бы узнать есть ли смысл брать OpenGL для этой цели. Если да,...
Ошибка "is block type valid" в момент вывода картинки OpenCV C++
Здравствуйте. Имеется код. Он есть в файлах opencv source, немного изменён. Не сразу заработал, но всё равно осталась ошибка. В момент вывода картинки imshow("output", frame); выводится ошибка is block type valid. в интернете находил такую ошибку. Пишут что элемент к которому обращается прога уже освобождена. Но я не могу постичь причину освобождения элемента. Код изначально был направлен...
C++ Как вывести эту матрицу? http://www.cyberforum.ru/cpp/thread1825616.html
Добрый вечер) Дайте пожалуйста совет не опытному программисту, как справиться с такой задачей: дали задание, составить таблицу остатков от деления всех чисел типа unsigned short int (0 / 65 535) на простые числа до sqrt(65 535)=256. Алгоритм вроде составил, работает, но на малой размерности таблицы. А вот габариты(65 535 х 256) пытался вывести, но пишет ошибку, и Windows пытается завершить...
C++ Чтение файла (с кракозябрами) с однобайтовой кодировкой, конвертация в UTF-8 и вывод в другой файл Добрый день, форумчане. Может у кого есть заготовка или кто поделится советом, необходимо прочитать файл (с кракозябрами) с однобайтовой кодировкой, переконвертировать в UTF-8 и выввести в другой файл. Сам файл на английском языке. Добавлено через 1 час 2 минуты То есть из cp437 в utf-8. подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт CЭксперт С++
13045 / 7308 / 814
Регистрация: 27.09.2012
Сообщений: 18,041
Записей в блоге: 3
Завершенные тесты: 1
24.10.2016, 22:46     Причины последовательной работы потоков?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
void    thread_work_1 () {
    thread_count_busy.lock();
    thread_started_count++;
    thread_count_busy.unlock(); 
    
    while (true) {
        std::unique_lock<std::mutex> lck(search_busy);//Перенес сюда. Вам нужен общий mutex, а не общий unique_lock
        printf ("\n now waiting 1...\n");
        start_search.wait(lck);//После выхода из ожидания mutex будет захвачен.
        printf ("\n starting 1...\n");
        lck.unlock();//Убираем блокировку мьютекса
        int n = 0;
        while (n < 100) {
            printf (" 1");  
            n++;
        }
    }
}
 
 
void    thread_work_2 () {
    thread_count_busy.lock();
    thread_started_count++;
    thread_count_busy.unlock();
    
    while (true) {
        std::unique_lock<std::mutex> lck(search_busy);//Перенес сюда. Вам нужен общий mutex, а не общий unique_lock
        printf ("\n now waiting 2...\n");
        start_search.wait(lck);//После выхода из ожидания mutex будет захвачен.
        printf ("\n starting 2...\n");
        lck.unlock();//Убираем блокировку мьютекса
        int n = 0;
        while (n < 100) {
            printf (" 2");
            n++;
        }
    }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru