Форум программистов, компьютерный форум 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;...
C++ При пересечении процента с долларом в консоли доллар должен исчезнуть Доброго времени суток. Не так давно начал изучать основы OpenGL, а параллельно с ним ООП и вектора, что идёт не очень успешно. Объединить у меня это никак не получается, так как я не знаю, как... http://www.cyberforum.ru/cpp/thread1832213.html
Графические библиотеки C++
Добрый день. Недавно решил начать программировать какую-нибудь простенькую 3D игру, но столкнулся с проблемой. Не могу решить какую графическую библиотеку использовать. Просмотрел множество...
Ошибка "is block type valid" в момент вывода картинки OpenCV C++
Здравствуйте. Имеется код. Он есть в файлах opencv source, немного изменён. Не сразу заработал, но всё равно осталась ошибка. В момент вывода картинки imshow("output", frame); выводится ошибка is...
C++ Как вывести эту матрицу? http://www.cyberforum.ru/cpp/thread1825616.html
Добрый вечер) Дайте пожалуйста совет не опытному программисту, как справиться с такой задачей: дали задание, составить таблицу остатков от деления всех чисел типа unsigned short int (0 / 65 535) на...
C++ Чтение файла (с кракозябрами) с однобайтовой кодировкой, конвертация в UTF-8 и вывод в другой файл Добрый день, форумчане. Может у кого есть заготовка или кто поделится советом, необходимо прочитать файл (с кракозябрами) с однобайтовой кодировкой, переконвертировать в UTF-8 и выввести в другой... подробнее

Показать сообщение отдельно
Croessmah
Эксперт CЭксперт С++
13209 / 7480 / 841
Регистрация: 27.09.2012
Сообщений: 18,388
Записей в блоге: 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++;
        }
    }
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru