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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Проверка запуска программы http://www.cyberforum.ru/cpp-beginners/thread1073142.html
Всем здравствуйте. Кто-нибудь знает надёжный способ проверки, запущена-ли определённая программа или нет? Сейчас использую такую ф-ю BOOL WeAreAlone( const char * const processName ) { HANDLE hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); PROCESSENTRY32 pe; pe.dwSize = sizeof( PROCESSENTRY32 );
C++ С++ имеющих четные порядковые номера и являющихся нечетными числами Даны натуральные числа n, A1, A2,....An.Определить количество членов Ak последовптельности A1,...An: имеющих четные порядковые номера и являющихся нечетными числами #incluse <stdio.h> #include <math.h> int main() { int n; /*количество чисел*/ int i, /*очередное число*/ int a k=0, http://www.cyberforum.ru/cpp-beginners/thread1073138.html
C++ Как заменить цикл while на рекурсию?
Как сделать в даной функции, вычисления через рекурсию, а не через цикл... тут происходит розложение в ряд Тейлора, http://www.cyberforum.ru/attachment.php?attachmentid=353685&stc=1&d=1389619565 double getf(double x, double eps) // значение по разложению { double first = x; double member = 1/first; int k = 3; double ret = 0.0;
Неименнованный канал C++
Почему так происходит, что функция read в такой связке записывает данные в неименнованный канал, хотя по идее она должна читать из него? #define bufsize 4096 char buf; pid = fork(); if (pid != 0) { read(filedes, buf, bufsize); } else
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
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
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;
}
 
Текущее время: 13:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru