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

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

Войти
Регистрация
Восстановить пароль
 
Vexel
12 / 12 / 1
Регистрация: 18.10.2009
Сообщений: 159
#1

Правильно ли я разбил программу на потоки? - C++

12.09.2010, 23:39. Просмотров 483. Ответов 7
Метки нет (Все метки)

Посмотрите пожалуйста, правильно ли я разбил программу на потоки ? При компиляции ошибок не было результат корректный дало. Но тем не менее, меня интересует именно правильность разбиения данной программы на потоки.
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
#include <iostream>
#include <pthread.h>
int S=0; 
int i;
int j;
int k; 
void * func_first(void * args)
{
 
for (i=1; i <=8; i++) 
{
S +=i+1; 
}
return NULL;
}
void * func_second(void * args)
{
for (j=4; j <=12; j++)
{
S+=j; 
}
return NULL;
}
int main (void)
{
pthread_t first; 
pthread_create(&first,NULL,func_first,NULL); 
pthread_t second; 
pthread_create(&second,NULL,func_second,NULL); 
for (k=5; k<=20; k++) 
{
S += k*(2*k-1); 
}
pthread_join(first,NULL); 
pthread_join(second,NULL); 
std::cout <<"S= \t" <<S; 
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2010, 23:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Правильно ли я разбил программу на потоки? (C++):

Как правильно создавать потоки? - C++
Ребята, подскажите как правильно организовать работу функции в отдельном потоке, чтобы она не ставила в ожидание выполнение остальных...

Как правильно использовать потоки? - C++
Тему про потоки прочёл. Так же ознакомился с классом mutex. И вот есть некий вопрос: как правильно использовать синхронизацию потоков в...

Как правильно потоки должны взаимодействовать друг с другом? - C++
Добрый день. Встает вопрос по std::thread, а именно. Как несколько созданных потоков должны взаимодействовать друг с другом? Например...

Разбить программу на потоки - C++
Помогите пожалуйста разбить программу на потоки. Всего у нас три суммы в программе, т.е. должно быть три потока, которые в итоге выводят...

Оформить программу через потоки - C++
Всем привет!! Помогите пожалуйста оформить программу через потоки!! ))) В программе поиск элемента оформить как функцию потока. Сначала...

Что такое потоки ввода, потоки вывода? - C++
Здарова всем! Не так давно уже прогаю на С++ и все НИКАК не могу понять, что такое потоки ввода, потоки вывода..! вот допустим...

7
niXman
Эксперт С++
3137 / 1449 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
13.09.2010, 00:26 #2
это что? дубль два?
0
Vexel
12 / 12 / 1
Регистрация: 18.10.2009
Сообщений: 159
13.09.2010, 00:28  [ТС] #3
Цитата Сообщение от niXman Посмотреть сообщение
это что? дубль два?
Просто хотел более проще сделать. Опять неверно наверное, исходя из вашего смайла ?
0
niXman
Эксперт С++
3137 / 1449 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
13.09.2010, 00:29 #4
Цитата Сообщение от Vexel Посмотреть сообщение
Просто хотел более проще сделать.
проще чем прошлый вариант?
0
Vexel
12 / 12 / 1
Регистрация: 18.10.2009
Сообщений: 159
13.09.2010, 00:31  [ТС] #5
Цитата Сообщение от niXman Посмотреть сообщение
проще чем прошлый вариант?
Ваш вариант для меня запутанный.
0
niXman
Эксперт С++
3137 / 1449 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
13.09.2010, 00:33 #6
Цитата Сообщение от Vexel Посмотреть сообщение
Ваш вариант для меня запутанный.

Добавлено через 36 секунд


Ваш вариант для меня запутанный. Не смотря на коментарии
спешу обрадовать тебя, что в этот код тебе осталось добавить мьютекс, и лок/анлок. после чего ты поймешь ,что такое запутанный
0
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
13.09.2010, 07:34 #7
Vexel, в Вашей программе все будет хорошо, если первый поток успеет завершится до того момента, пока начнется второй. А если нет то скорее всего значение S будет не ожидаемым (это еще зависит того как будет выглядит скомпилированное приложение).

А вообще какой здесь смысл создания потоков?
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
13.09.2010, 10:09 #8
Евгений М.,
Учебные цели, видимо. Для разрешения описанной ситуации мьютекс не помешал бы здесь...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2010, 10:09
Привет! Вот еще темы с ответами:

правильно ли разбил IP? - Сети
Вобщем задание разбить 192.168.3.0 на 3 подсети причем что 192.168.3.0 уже отвечает одной подсети 1) 192.168.3.16/24 2)192.168.3.128/24...

Правильно ли я разбил разделы - Жесткие диски
Поставил я новый жесткий диск. Hitachi Travelstar 7K1000, 1TB, 7200 оборотов, 32МB кеша, интерфейс SATAIII. Внутренний. Форм фактор 2.5....

Задача "Кто разбил окно". Проверьте правильно ли я описал шаги и решил ее - Логика и множества
В школе разбили окно. Подозревают: Лешу, Диму, Толю, Мишу. Лёша утверждает: Я не виноват. Я не подходил к окну. Миша знает,...

Как правильно синхронизировать потоки? - C#
По нажатию кнопки создается N потоков (в данном случае 5): Thread threads = new Thread; for (int i = 0; i &lt;...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
13.09.2010, 10:09
Ответ Создать тему
Опции темы

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