![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
qw1mb0 |
|
|||
Непутевый студент ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 24.4.2010 Где: Севастополь Репутация: нет Всего: нет |
Добрый день уважаемые форумчане.
Появилось необходимость написать программу: Создается 3 параллельных потока которые генерируют массивы по 1000 символов: Вроде как с этим разобрался:
Далее нужно создать еще 1 поток(4 поток), который будет искать среднее арифметическое одинаковых по индексу элементов массива, т.е. например (второй элемент массива из 1 потока + второй элемент массива из 2 потока)/2 Записывается в соответствующий массив. Далее: Создается еще 1 поток, который будет проворачивать ту же операцию с результатами 4 потока и 3 потока по аналогичной схеме сравнения первого и второго потоков. Пока есть соображения только теоретические связанные с семафорами, уже битый час гуглю, но понять так и не могу как можно это реализовать. Вот решил попросить помощи у вас. Заранее спасибо большое за помощь. |
|||
|
||||
DurRandir |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: 14 Всего: 17 |
1. use strict!
2. Зачем там sleep 1? 3. Вы пишите в массив, который не будет доступен извне потока. Читайте про :shared 4. Для решения надо понять простой факт - как только ->join для потока вернулся - это означает, что свою работу он выполнил. Этого вполне хватит, чтобы организовать линейное выполнение. |
|||
|
||||
qw1mb0 |
|
||||
Непутевый студент ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 24.4.2010 Где: Севастополь Репутация: нет Всего: нет |
DurRandir,
1. Спасибо, что напомнили. 2. И вправду зачем? 3. Читаю и вроде как понял основные положения, НО я не могу понять: я создаю 3 потока в цикле:
Для решения моей задачи будет логично написать подпрограмму которая будет высчитывать среднее арифметическое и заносить это в новый массив для этого запускаем еще 1 поток. Но как можно обратиться именно к массивам @lol которые формируются в каждом отдельном потоке.
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |