![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
reddim |
|
||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2011 Репутация: нет Всего: нет |
Не могу сообразить как преобразовать многопоточный скрип что бы он работал корректно.
Суть: два текстовых файла logins.txt и pass.txt Нужно их вывести на экран..что бы они были без повторенией !!! вот так нужно user=pass1 user=pass2 user=pass3
Пробовал вот так...
Но результат с повторами, т.е 3 потока = 3 повтора... user=pass1 user=pass2 user=pass3 user=pass1 user=pass2 user=pass3 user=pass1 user=pass2 user=pass3 Вообщем пробовал и через foreach и еще по разному, пришел к выводу, что нужно это всё дело сделать что бы было в 1 цикле = while т.е нужно это в 1 файл как то сделать а потом разбить, и тогда нормально получится...типа while(@sites) { my ($pass, $sites) = split $делитель => shift @sites; } просто это так если чесно за*ло 30 раз с этим сталкиваюсь и не могу решить. Это сообщение отредактировал(а) reddim - 30.1.2012, 00:00 |
||||
|
|||||
infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
А что тут странного? Вы одновременно читаете одни и те же файлы в нескольких потоках. Вот и получаете одни и те же строки в выводе. Если дело просто в чтении файла, при чем тут потоки? Сделайте простой цикл. Если же предстоят некие операции связанные с веб, тогда да, потоки не помешают. Но не так как вы сделали. Сначала в главном потоке надо вычитать файлы и создать очередь задач. Потом создать потоки исполнители и расшарить между ними эту очередь. Почитайте про Thread::Queue.
|
|||
|
||||
reddim |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2011 Репутация: нет Всего: нет |
я вам не гуру потоков) я вообще ничего не понял что вы написали, почитаю..мб есть какие-то примеры..а через данную конструкцию как реализовать
use threads; use threads::shared; my $threads = 5 ; my @trl = (); $trl[$_] = threads->create(\&potoki) for 0..$threads - 1; $_->join for @trl; sub potoki { чтение из файлов и вывод } |
|||
|
||||
DurRandir |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: 14 Всего: 17 |
Какую именно операцию вы хотите распараллелить? Как только вы ответите для себя на этот вопрос - то сможете это описать. А то пока у меня такое чувство, что потоки для вас - магия, которая "сделает всё сама".
|
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Берёте какую-нибудь книжку по программированию для начинающих (лучшэ -- Кнут Д., Искусство программирования), и начинаете решать примеры. Последовательно. Когда прорешаете примеры нормальной сложности -- возвращайтесь, будет о чём разговаривать.
(Потому, что всё, что Вы написали -- это просто ад. А Вашэ написание методом генетического программирования -- в особенности). PS И да, Ш-шпанчик Вас упаси связываться с потоками. Это вообще чрезвычайно переоцэнённая, а потому достаточно вредная модэль вычислений. В общем, не трогайте. |
|||
|
||||
reddim |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2011 Репутация: нет Всего: нет |
я прошу лишь показать мне многопоточный пример вывода данных из 2 разных файлов...и всё..
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |