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

Многопоточность (вычисление корня квадратного уравнения, используя несколько независимых потоков) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ многомерные массивы http://www.cyberforum.ru/cpp-beginners/thread261115.html
1.Даны прямоугольные матрицы А та В размерностью NхM. Вычислить элементы матрицы С по формуле 2.Дана прямоугольная матрица А размерностью NхM. Распечатать суму элементов каждого столбца и каждой...
C++ Прямая и окружность Есть прямая, заданая уравнением Ax+By+C=0 И окружность с координатами центра и радиусом Нужно найти координаты точек пересечения если таковы существуют. Находил решения, если центр окружности... http://www.cyberforum.ru/cpp-beginners/thread261101.html
Массив, расположение элементов по усовию C++
#include <cstdlib> #include <iostream> #include <cmath> #include <clocale> using namespace std; int main(int argc, char *argv) { setlocale (LC_CTYPE, "rus"); //Условие: //Преобразовать...
Файлы: отобразить список студентов с указанием среднего балла C++
Очень прошу помощи. Во входном файле размещены данные в формате: <Фамилия студента 1> <оценка 1> <оценка 2> <оценка 3> <Фамилия студента 2> <оценка 1> <оценка 2> <оценка 3> ... <Фамилия...
C++ STL. http://www.cyberforum.ru/cpp-beginners/thread261076.html
Всем доброго времени суток. У меня имеется два вопроса. 1) У нас имется квадратная матрица. И чтобы найти в строках, к примеру, максимальный элемент, мы сделаем так: *std::max_element (MAS,...
C++ чтение из файла Задача состоит в том,чтобы считать данные из файла,который содержит только целые числа со знаком,записать их в массив и вывести в консоль. // Examle(LR2).cpp : Defines the entry point for the... подробнее

Показать сообщение отдельно
igorrr37
1648 / 1276 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
21.03.2011, 19:37
главный поток принимает число и выводит результат, второй поток умножает его на два, передача по анонимному каналу, синхронизация семафором
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
#include<iostream>
#include<windows.h>
#include<process.h>
 
HANDLE hReadPipe, hWritePipe, hSemaphore;
DWORD buf;
 
void f(void* p){
    int num=*reinterpret_cast<int*>(p);
    num*=2;
    if(!WriteFile(hWritePipe, &num, sizeof(num), &buf, NULL)){std::cerr<<"Error writing\n";}
    ReleaseSemaphore(hSemaphore, 1, NULL);
}
 
int main() {
    int num;
    std::cin>>num;
    if(!(hSemaphore=CreateSemaphore(NULL, 0, 1, NULL))){std::cerr<<"Create semaphore error\n"; return GetLastError();}
    if(!CreatePipe(&hReadPipe, &hWritePipe, NULL, 0)){std::cerr<<"Failed pipe creating\n"; return GetLastError();}
    _beginthread(f, 0, &num);
    while(true){
        if(WaitForSingleObject(hSemaphore, 0)==WAIT_OBJECT_0) break;
    }
    ReadFile(hReadPipe, &num, sizeof(num), &buf, NULL);
    std::cout<<num<<"\n";
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru