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

вычислить значения одной и той-же функции с разными значениями, в несколько потоков - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проверка запуска программы http://www.cyberforum.ru/cpp-beginners/thread1073142.html
Всем здравствуйте. Кто-нибудь знает надёжный способ проверки, запущена-ли определённая программа или нет? Сейчас использую такую ф-ю BOOL WeAreAlone( const char * const processName ) { ...
C++ С++ имеющих четные порядковые номера и являющихся нечетными числами Даны натуральные числа n, A1, A2,....An.Определить количество членов Ak последовптельности A1,...An: имеющих четные порядковые номера и являющихся нечетными числами #incluse <stdio.h> #include... http://www.cyberforum.ru/cpp-beginners/thread1073138.html
C++ Как заменить цикл while на рекурсию?
Как сделать в даной функции, вычисления через рекурсию, а не через цикл... тут происходит розложение в ряд Тейлора, http://www.cyberforum.ru/attachment.php?attachmentid=353685&stc=1&d=1389619565...
Неименнованный канал C++
Почему так происходит, что функция read в такой связке записывает данные в неименнованный канал, хотя по идее она должна читать из него? #define bufsize 4096 char buf; pid = fork(); if...
C++ Как происходит процесс выделения памяти в стеке и куче http://www.cyberforum.ru/cpp-beginners/thread1073084.html
#include <stdio.h> #include <conio.h> #include <windows.h> #include "disc.h" void main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); Disc d1,d2;
C++ Интерационные циклы (найти ошибку) Скажите, пожалуйста, где я допустила ошибку? #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <cmath> using namespace std; подробнее

Показать сообщение отдельно
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
24.01.2014, 10:43  [ТС]
MyCass.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma once
#include <windows.h>
 
class MyClass {
    //// поля
    // ..
    HANDLE m_write_to_file; // мютекс для синхронизации записи в файл
    ////...
    //// методы
    static DWORD WINAPI mainThread(void* ); // фукнция для реализации потоков
    DWORD runThread(); // поток
    
 
  public:
    MyClass(void);
    virtual ~MyClass(void);
    void initThreads(); //запуск потоков
};
MyClacc.cpp
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
#include "MyClass.h"
 
MyClass::MyClass(void){
    //...
    m_write_to_file = CreateMutex(NULL,false,NULL);
    
}
 
MyClass::~MyClass(void) {
 
}
/// фукнция для реализации потоков
DWORD WINAPI MyClass::mainThread(void* lpParam) {
    return ((MyClass*)lpParam)->runThread();
}
/// поток
DWORD MyClass::runThread() {
    WaitForSingleObject(m_write_to_file,INFINITE);
    ... // вывод
    ReleaseMutex(m_write_to_file);
    return 0;
}
 
///процедура для создания потков
void MyClass::initThreads {
    HANDLE *thread_handles = NULL;
    size_t sz=m_num_of_threads;
    thread_handles = new HANDLE[sz];
    for(size_t i = 0; i < sz; i++) {
        thread_handles[i] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)mainThread, this, 0, NULL);
    }
    WaitForMultipleObjects(sz, thread_handles, TRUE, INFINITE);
    for(size_t i = 0; i<sz; i++) {
        CloseHandle(thread_handles[i]);
    }
    delete[] thread_handles;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru