Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 1
Регистрация: 13.02.2013
Сообщений: 22
1

Циклы в потоках

16.07.2013, 20:45. Показов 844. Ответов 7
Метки нет (Все метки)

Использую многопоточность.Необходимо включить в тело потока 2-3 цикла,не навредит ли это работе программы,если воиспроизводить несколько циклов допустим в 100 потоках?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2013, 20:45
Ответы с готовыми решениями:

Циклы обработки сообщений разных форм в разных потоках
Здравствуйте! Подскажите как реализовать циклы обработки сообщений разных форм в разных потоках. У...

Циклы с условием, циклы с переменной, вложенные циклы
С условием 1. Ввести натуральное число N и вычислить сумму всех чисел фибоначчи меньших N....

Циклы. Напечатать числа в виде таблицы, используя только циклы
4. Напечатать числа в виде таблицы, используя только циклы (массивы и строки не применять): ...

Циклы. Напечатать числа в виде таблицы, используя только циклы
Напечатать числа в виде таблицы, используя только циклы (массивы и строки не применять): ...

7
36 / 33 / 1
Регистрация: 11.01.2013
Сообщений: 388
16.07.2013, 21:15 2
ucxod,
Цитата Сообщение от ucxod Посмотреть сообщение
в 100 потоках
лучше не стоит...
Дело в том, что при работе с потоками могут возникать, т.н. тупики и как разруливать их в случае 100 потоков - вопрос философский.
2 - 3 потока при современной скорострельности процессоров и объёме оперативной памяти - хороший вариант.

С уважением, SysUnit.
0
331 / 84 / 16
Регистрация: 10.01.2011
Сообщений: 516
Записей в блоге: 1
16.07.2013, 21:31 3
ucxod, если обрабатываемые данные в циклах разные то можно, при условии, что эти циклы выполняются реально долго, иначе только время потеряешь. Если данные одни и те же, но результат программы не изменяется при использовании данных разными циклами, то критические секции в таких больших количествах только увеличат время выполнения и придется уменьшать кол-во потоков для достижения производительности. И вообще, попробуйте просто оптимизировать ваши циклы. В интернете есть статьи. В свое время они спасли меня на олимпиаде)
0
2648 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,725
17.07.2013, 10:04 4
Цитата Сообщение от ucxod Посмотреть сообщение
не навредит ли это работе программы,если воиспроизводить несколько циклов допустим в 100 потоках?
Навредит если сделать это бездумно.
0
Модератор
3476 / 2600 / 740
Регистрация: 19.09.2012
Сообщений: 7,966
17.07.2013, 10:06 5
Нет смысла запускать потоков больше, чем ядер у процессора - они все равно будут выполняться по очереди.
Тупики могут возникать только если есть взаимодействие между потоками и оно неправильно организовано.
0
Ev1l
17.07.2013, 10:12
  #6

Не по теме:

FIL, Intel Core i7-3770, Количество ядер 4 Количество потоков 8, думаю иногда можно...

1
Модератор
3476 / 2600 / 740
Регистрация: 19.09.2012
Сообщений: 7,966
17.07.2013, 10:47 7
Я немного ошибся - каждое ядро (современных процессоров) может обрабатывать два потока одновременно.
Чтобы не путаться, можно в Диспетчере задач посмотреть на вкладке Быстродействие. Сколько графиков - столько и потоков может одновременно обрабатываться.
0
Миниатюры
Циклы в потоках   Циклы в потоках  
Ушел с форума
Эксперт С++
16426 / 7400 / 1186
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
17.07.2013, 11:26 8
Цитата Сообщение от FIL Посмотреть сообщение
каждое ядро (современных процессоров) может обрабатывать два потока одновременно.
Только если есть Hyper-Threading.

Добавлено через 30 минут
Цитата Сообщение от ucxod Посмотреть сообщение
Использую многопоточность.Необходимо включить в тело потока 2-3 цикла,не навредит ли это работе программы,если воиспроизводить несколько циклов допустим в 100 потоках?
- Не навредит ли абстрактный цикл абстрактным потокам абстрактной программы ?

Не навредит. Абстрактно.

Если опишете более подробно, что за потоки, что за циклы, что за программа и для каких целей в
ней использована многопоточность, будет шанс получить более конкретный ответ.

Пока только можно сказать, что в количестве потоков, большем количества процессоров/ядер,
смысла нет никакого почти всегда. Система будет тратить больше времени на переключение
контекстов, чем на выполнение полезной работы, это не говоря уже о том, что на содержание
каждого потока выделяются некоторые ресурсы (например, память под стек).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2013, 11:26

Переведите исходные циклы в циклы других форматотв:
Переведите исходные циклы в циклы других форматотв: For i:73 to 122 do в Цикл while: в Цикл...

Циклы в Паскале (циклы с пост- и предусловием)
Требуется напиcать программу, которая запрашивает числа с клавиатуры до тех пор, пока сумма чисел...

Заменить в коде циклы for на циклы while
int i, j, n; bool a; cin >> i >> n; for (i; i<n; i++) { a = true; for (j = 2; j <= i / 2;...

Циклы с параметром (циклы ДЛЯ)
Заданные векторы X(N) и Y(N) преобразовать по правилу: большее из xi и yi принять в качестве нового...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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