Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C (СИ) Подскажите хороший компилятор Си с библиотеками https://www.cyberforum.ru/ c-beginners/ thread441265.html
Ребята, подскажите хороший компилятор с библиотеками для си? Или как его запустить в любой из версий маленькисофт visual studio? Windows 7 x64... А то уже задолбался писать на виртуальной машине на... Или как его запустить в любой из версий маленькисофт visual studio? Project - Options - C/C++ - Advanced - Compile as: C
C (СИ) Вычислите F (X) в зависимости от введенного X https://www.cyberforum.ru/ c-beginners/ thread441147.html
Здравствуйте! Помогите написать программу на языке C. Нужно, вычислите F(X) в зависимости от введенного X. Заранее огромное спасибо! #include <stdio.h> #include <math.h> int main(void) { double x; scanf("%lf", &x); if(x <= 1.) printf("%lf\n", -(x * x) + x - 9.); else if(x < 8)
Вывести на печать товары вес которых больше 5 кг C (СИ)
Создать список название продукции, вес единицы, цена единицы продукции, и вывести на печать товары вес которых больше 5 кг.. Помогите разобраться со стеком и динамическим типом данных чтобы помочь напишите какие трудности вы исптываете
Вывод двумерного масива в виде таблицы C (СИ)
Помогите осуществить вывод ато у меня не оч получается.. for (i=0;i<3;i++) for(j=0;j<3;j++){ printf(" %i\t",A); } } for (int i=0; i<n; ++i) { for (int j=0; j<m; ++j) std:: cout << a; std:: cout << "\n"; }
C (СИ) Все четные цифры числа увеличить на 1 https://www.cyberforum.ru/ c-beginners/ thread441406.html
Здравствуйте! Снооова столкнулась с проблемой. Понимаю, как должна работать программа, но не получается вывести результат. Посмотрите, где может быть ошибка.. /* Дано число, все четные цифры... #include <stdio.h> #include <math.h> int main() { int num = 2534, a = 0, nnum = 0; int i = 0; a = num; while(num) { a = num % 10;
Как правильно засунуть переменные в SQL? C (СИ)
Пытаюсь сделать такое ind = (int)part + ((int)part*256 + ((int)part*256 + (int)part*256)); printf(" IND = %d \n",ind); sprintf(query,"Вывод запроса select * from... zoleg, скорее всего query не правильно объявлена... #include <stdio.h> int main(void){ char query; sprintf(query, "bla bla bla select * from tablitsa where calonka1=%d and calonka2<>%d",...
Почему это работает C (СИ)
вот код, почему он работает? printf("k");; ;;;;;;;;;;; printf("k");; ;; ;; P.S. А почему бы и нет? Конструкции вида for(i = 0; some != NULL; i++); тебя не удивляют?
C (СИ) Заполнить массив словами вводом с консоли https://www.cyberforum.ru/ c-beginners/ thread442324.html
Задача тривиальна - заполнить массив словами вводом из консоли. Как я понимаю такой способ не проканает. Заранее спасибо char *mmm; int i; puts("Vvedite slova \n"); for (i=1; i<5; i++) { scanf("%s",mmm);и под каждый mmm перед этим должна быть выделена память
C (СИ) Функция вывода двухмерного массива https://www.cyberforum.ru/ c-beginners/ thread442050.html
Подскажите, как переделать функцию вывода, чтобы она могла выводить произвольный массив, а не жестко заданные N=9 на M=9 элементов? #include <stdio.h> #include <stdlib.h> #include <time.h> ... объявить N и M как переменные, в циклах 9 заменить на N и M соответственно. Числа N и M вводить откуда надо.
Ожидание нажатия Enter C (СИ)
Написал программку #include <stdio.h> main() { int c; long tab,prob,strend; tab = 0; prob = 0; После printf сделайте так, чтобы программа остановилась. Например, scanf.
C (СИ) [c] визуально изменить https://www.cyberforum.ru/ c-beginners/ thread441519.html
Народ кто может визуально изменить прогу, там переменные поменять, что бы казалось что делали два разных человека. прога в архиве, там два файла doc и c. сделайте пожалуйста, кто возмется напишите,...
C (СИ) Проверить правильность расстановки скобок и выражений https://www.cyberforum.ru/ c-beginners/ thread442277.html
Дано скобочное выражение, оканчивающееся точкой с запятой. Проверить правильность расстановки скобок и выражений. Пример: Дано :Текст произвольной длины оканчивающийся точкой. Проверить есть... LTony, в языках С и С++ имеет значение регистр символов. a и A здесь - разные символы. Также вам, возможно, кто-то мельком сказал "для сравнения в Си используется количество символов "=", большее...
101 / 92 / 53
Регистрация: 22.03.2011
Сообщений: 226
14.02.2012, 00:48  [ТС] 0

Мьютекс. - C (СИ) - Ответ 2487705

14.02.2012, 00:48. Показов 2591. Ответов 1
Метки (Все метки)

Ответ

Я нашел другой способ реализации. Он устроил первые нужды.
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "stdafx.h"
#include <stdio.h>
#include <windows.h> 
#include <process.h> 
 
 
//https://www.cyberforum.ru/win-api/thread68347.html
 
HANDLE hMutex;
int buf,count;
bool ispr;
bool inpro;
unsigned __stdcall MyFunc(void *arg) 
{
    DWORD dwWaitResult;
    while (true)
    {
        dwWaitResult = WaitForSingleObject( hMutex, 5000L);
        if (ispr == true)
        {
            if(count%3==0 || count%5==0) {ispr=false; printf("3 ");/*buf=3;*/}
            else {ispr=false; printf("2 ");/*buf=2;*/}
        }
        Sleep(100L);//500L
        ReleaseMutex(hMutex);
    }
    _endthreadex(0);
    return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE hThreads[2];
    unsigned uThreadsId[2];
    int n[2]={2,3};
    buf = 2;
    count =0;
    int mycount=24;
    ispr = false;
    hMutex = CreateMutex(NULL, FALSE, NULL);
    printf("2 2 3 2 3 3 2 2 3 2 3 3 2 2 3 2 3 3 2 2 3 2 3 3\n");
    if (hMutex == NULL)
    {
        printf("CreateMutex error: %d\n", GetLastError());
    }
    hThreads[0]=(HANDLE)_beginthreadex(NULL, 0, &MyFunc, &n[0],0, &uThreadsId[0]);
    hThreads[1]=(HANDLE)_beginthreadex(NULL, 0, &MyFunc, &n[1],0, &uThreadsId[1]);
    while (mycount)
    {
        if (ispr==false)
        {
            ispr=true;
            //printf("%d ",buf);
            count++;
        }
        if(count==6) {count=0;}
        mycount--;
        Sleep(200L);
    }
    printf("\n");
    return 0;
}
Вот код, но если поставить 500L(закоментировано это место), то падает программа, и не печатает полную последовательность.

Помогите реализовать два мьютекса и их синхронизировать (условие вверху). В коментах кода есть ссылка на похожое...
Проблема:
Получается, что я блокирую один поток, а второй болтается себе, т.е. делает свою работу(печатает свой номер), и он как бы перебивает работу или что... но если дать "хорошую" паузу, то он успевает перебить второй поток. Нужно их контролировать(потоки) двумя мьютексами.

Вродь понятно как создать ещё один мьютекс, н окак их синхронизировать?? Люди добрые, помогите хоть советом =((

Вернуться к обсуждению:
Мьютекс. C (СИ)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.02.2012, 00:48
Готовые ответы и решения:

Мьютекс
Пытюсь изменить задачу под ту что дана во вложении, нужна помощь #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;windows.h&gt; ...

Мьютекс
Вобщем если можно напишите как работать с ним: есть 2 формы, одна с заданным интервалом записвает в файл, вторая считывает, и мьютекс...

Мьютекс в C++
Здравствуйте! Помогите пожалуйста написать взаимодействие двух процессов(желательно через мьютекс). Одно приложение случайным образом...

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.02.2012, 00:48
Помогаю со студенческими работами здесь

Мьютекс и синхронизация
Разбираюсь с мьютексами и синхронизацией приложений. Создал редактор.В нем есть диалог печати если запущены несколько копий редактора и в...

Симофор, мьютекс
https://www.cyberforum.ru/attachment.php?attachmentid=975322&amp;stc=1&amp;d=1540389708 П.5.18.Правил Запрещено размещать задания и решения в...

потоки, мьютекс
Доброй ночи!:) У меня есть класс А - это общий ресурс которым пользуются два потока В и С. где мне определить это мьютекс, чтобы они...

Мьютекс и синхронизация
Добрый день, пробую создать три потока и мьютекс, два потока заполняют массив из 20 элементов, в начале функций каждого потока они...

Мьютекс в PowerShell
Возник такой вопрос допустим отработало условие if(func1) и код запустился в отдельном потоке, обозначим его условно THREAD1. Затем в цикле...

0
Новые блоги и статьи
std::mutex в C++: Хитрости и тонкости использования
Wired 03.03.2025
В C++ ключевым инструментом для обеспечения корректной работы параллельных процессов выступает std::mutex – примитив синхронизации, появившийся в стандарте C++11. До его появления использовали. . .
std::span в C++: Производительно­сть и практическое использование
Wired 03.03.2025
Традиционная работа с указателями и массивами часто приводит к ошибкам и уязвимостям в безопасности. Именно поэтому в C++20 появился std::span - легковесная обертка, обеспечивающая безопасный. . .
std::span в C++: Константность и безопасность типов
Wired 03.03.2025
std::span - представитель семейства view-типов, появившийся в стандарте C++20. Этот компонент предоставляет легковесное и эффективное решение для работы с непрерывными последовательностями данных,. . .
std::span в C++: Subview и Slice
Wired 03.03.2025
std::span - невладеющий тип данных C++, который предоставляет гибкий интерфейс для работы с непрерывными последовательностями элементов. Этот тип существенно упрощает обработку массивов и. . .
std::span в C++: Доступ к элементам и итерирование
Wired 03.03.2025
Появление std::span в стандарте C++20 стало значительным шагом вперед, предоставив разработчикам средство для безопасного и производительного доступа к непрерывным последовательностям элементов. . . .
std::span в C++: Управление массивами данных без владения
Wired 03.03.2025
Новый класс std::span, появившийся в стандарте C++20, открывает возможности для оптимизации работы с последовательными наборами данных. По сути, это легковесная обертка, которая предоставляет доступ. . .
Неблокируемый стек в C++26: реализуем простой сборщик мусора
stackOverflow 02.03.2025
Многопоточные приложения требуют надежных и производительных структур данных, способных эффективно работать в условиях конкурентного доступа. Неблокируемые структуры данных представляют собой особый. . .
Шаблон REQ/REP в ZeroMQ: сверхбыстрый обмен сообщениями в C++ и Python
stackOverflow 02.03.2025
Построение высоконагруженных распределенных систем требует надежного и производительного механизма обмена сообщениями. ZeroMQ выделяется среди прочих решений своей невероятной скоростью работы и. . .
Нестандартные приемы работы с итераторами в C++
stackOverflow 02.03.2025
Итераторы - один из краеугольных камней C++, предоставляющий универсальный механизм обхода и манипуляции данными в контейнерах. Появившись как замена небезопасным указателям, они эволюционировали от. . .
Лексический анализ и регулярные выражения в C++26
stackOverflow 02.03.2025
Лексический анализ - ядро любого компилятора и инструмента обработки текста. Каждый программист сталкивается с задачами парсинга строк, обработки файлов конфигурации или анализа пользовательского. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru