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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Den-s
1 / 1 / 0
Регистрация: 24.03.2013
Сообщений: 124
#1

Многопоточное приложение - C++

17.10.2013, 12:35. Просмотров 720. Ответов 6
Метки нет (Все метки)

Есть класс. В нем 2 функции. как в одной функции можно создать 2 потока выполняющую одну и туже функцию. иможно ли передать в поток интовое значение?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
17.10.2013, 13:16     Многопоточное приложение #2
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
#include <iostream>
#include <thread>
#include <cstdlib>
 
class C
{
public:
    void f() const
    {
        std::thread t1( g, 42 );
        std::thread t2( g, 100500 );
 
        t1.join();
        t2.join();
    }
private:
    static void g( int v ) 
    {
        for( int i=0; i<10; ++i )
            std::cout << v << std::endl;
    }
};
 
int main() {
    C c;
    c.f();
    
    std::system( "pause" );
    return 0;
}
Den-s
1 / 1 / 0
Регистрация: 24.03.2013
Сообщений: 124
17.10.2013, 13:34  [ТС]     Многопоточное приложение #3
Спасибо=)

Добавлено через 6 минут
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
class Pro
{
public:
 
float **Mas1;
float **Mas2;
float **Mas3;
int H;
int M;
 
Pro(int h=4,int m=6)
{ 
  H=h;
  M=m;
 
  Mas1=new float* [h];
  for(int i=0;i<h;i++)
      Mas1[i]=new float [m];
 
  Mas2=new float* [m];
  for(int i=0;i<m;i++)
      Mas2[i]=new float [h];
 
   Mas3=new float* [h];
  for(int i=0;i<h;i++)
      Mas3[i]=new float [h];
 
  
  for(int i=0;i<h;i++)
      for(int j=0;j<m;j++)
         { Mas1[i][j]=(rand() % 100 + 1) / float((rand() % 10 + 1));
           Mas2[j][i]=(rand() % 100 + 1) / float((rand() % 10 + 1));
         }
 
  
 
}
void m()
{
    thread t1( Multiplication,40);
    t1.join();
    
}
 
 
void  Multiplication(int v)
{  
 
  for (int i=0;i<H;i++)
   { 
 
       for(int j=0;j<H;j++)
    {
        float ask=0;
 
        for(int z=0;z<M;z++)
            ask+=Mas1[i][z]*Mas2[z][j];
 
       Mas3[i][j]=ask;
       cout<<Mas3[i][j]<<" ";
 
     }
    cout<<endl;
  }
 
 
}
 
 
 
 
 
};
 
int main()
{ Pro c;
c.m();
}
выдает ошибки
Ошибка 1 error C3867: Pro::Multiplication: в вызове функции отсутствует список аргументов; используйте "&Pro::Multiplication" для создания указателя на член
Ошибка 2 error C2661: std::thread::thread: нет перегруженной функции, принимающей 2 аргументов


Что это?

Добавлено через 3 минуты
Я так понимаю это из-за конструктора?

 Комментарий модератора 
Используйте теги кода для выделения собственно кода.
В окне сообщения, слева вверху кнопка "C++".
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
17.10.2013, 13:37     Многопоточное приложение #4
Den-s, для выделения кода используйте теги на панели инструментов сообщения.
В какой среде работаете?
Den-s
1 / 1 / 0
Регистрация: 24.03.2013
Сообщений: 124
17.10.2013, 13:38  [ТС]     Многопоточное приложение #5
visual studio 2012
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
17.10.2013, 13:42     Многопоточное приложение #6
Den-s, создание потока для функции члена класса описывается так
C++
1
std::thread thread(&class_type::method_name, this, arg1, arg2, ...);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2013, 13:43     Многопоточное приложение
Еще ссылки по теме:

Многопоточное программирование C++
C++ Многопоточное программирование
Многопоточное программирование C++
Многопоточное программирование C++
Многопоточное приложение C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Den-s
1 / 1 / 0
Регистрация: 24.03.2013
Сообщений: 124
17.10.2013, 13:43  [ТС]     Многопоточное приложение #7
Большое спасибо
Yandex
Объявления
17.10.2013, 13:43     Многопоточное приложение
Ответ Создать тему
Опции темы

Текущее время: 18:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru