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

Мультипоточность (очень просто) - C++

Восстановить пароль Регистрация
 
FireProoF
17 / 17 / 1
Регистрация: 28.10.2012
Сообщений: 190
14.04.2013, 18:17     Мультипоточность (очень просто) #1
Здравствуйте! Подскажите пожалуйста, почему когда я делая свою "программу" многопоточной в 3 потока(один основной и два дочерних), скорость выполнения увеличивается?
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// 1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <tchar.h>
#include <strsafe.h>
#include "time.h"
using namespace std;
 
#define MAX_THREADS 3
#define BUF_SIZE 255
 
 
DWORD WINAPI fn1( LPVOID lpParam );
DWORD WINAPI fn2( LPVOID lpParam );
 
void Fn1();
void Fn2();
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    DWORD   dwThreadIdArray[MAX_THREADS];
    HANDLE  hThreadArray[MAX_THREADS]; 
    
    int chs;
    cin>>chs;
 
    
 
 
    switch (chs)
    {
    case 1:
        {
            long    i = 6000000L;
            clock_t start, finish;
            double  duration;
 
            start = clock();
 
            hThreadArray[0] = CreateThread( 
                NULL,                   // default security attributes
                0,                      // use default stack size  
                fn1,       // thread function name
                NULL,          // argument to thread function 
                0,                      // use default creation flags 
                &dwThreadIdArray[0]);   // returns the thread identifier 
 
            hThreadArray[1] = CreateThread( 
                NULL,                   // default security attributes
                0,                      // use default stack size  
                fn2,       // thread function name
                NULL,          // argument to thread function 
                0,                      // use default creation flags 
                &dwThreadIdArray[1]);   // returns the thread identifier 
 
            WaitForMultipleObjects(2, hThreadArray, TRUE, INFINITE);
            
            finish = clock();
            duration = (double)(finish - start) / CLOCKS_PER_SEC;
            cout<<endl<<"This is time "<<duration;
            break;
 
        }
    case 2:
        {
            long    i = 6000000L;
            clock_t start, finish;
            double  duration;
 
            start = clock();
 
            Fn1();
            Fn2();
 
            finish = clock();
            duration = (double)(finish - start) / CLOCKS_PER_SEC;
            cout<<endl<<"This is time "<<duration;
            break;
 
        }
        
    }
 
    
 
    system("pause");
    return 0;
}
 
DWORD WINAPI fn1( LPVOID lpParam )
{
    int x=0;
    for (int i=0;i<10000000;i++)
    {
        x*=i;
    }
    cout<<endl<<"fn1 FINISHED!"<<endl;
    return 0;
}
 
DWORD WINAPI fn2( LPVOID lpParam )
{
    int x=0;
    for (int i=0;i<10000000;i++)
    {
        x*=i;
    }
    cout<<endl<<"fn2 FINISHED!"<<endl;
    return NULL;
}
 
void Fn1()
{
    int x=0;
    for (int i=0;i<10000000;i++)
    {
        x*=i;
    }
    cout<<endl<<"Fn1 finished!"<<endl;
    return;
}
 
void Fn2()
{
    int x=0;
    for (int i=0;i<10000000;i++)
    {
        x*=i;
    }
    cout<<endl<<"Fn2 finished!"<<endl;
    return;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2013, 18:17     Мультипоточность (очень просто)
Посмотрите здесь:

C++ Очень просто(x^3)
C++ Просто расставить комменты, прога очень маленькая) Только сегодня , пожалуйста
Очень просто C++
C++ Двумерные массивы! очень просто!
printf и мультипоточность C++
Программы на С++. Очень надо. Буду очень благодарен! C++
Мультипоточность C++
C++ Странная ошибка при компиляции очень очень большой проги ,,boomerang,,

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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