Траблы С Потоками

Тема в разделе "Perl программирование", создана пользователем reddim, 30 янв 2012.

  1. reddim

    reddim Гость

    Не могу сообразить как преобразовать многопоточный скрип что бы он работал корректно.
    Суть: два текстовых файла logins.txt и pass.txt
    Нужно их вывести на экран..что бы они были без повторенией !!! вот так нужно
    user=pass1
    user=pass2
    user=pass3

    <!--shcode--><pre><code class='perl'>use threads;
    use threads::shared;

    my $threads = 5;
    my @trl = ();

    $trl[$_] = threads->create(\&potoki) for 0..$threads - 1;
    $_->join for @trl;

    sub potoki
    {
    тут организовать чтение из файлов и вывод
    }[/CODE]

    Пробовал вот так...

    <!--shcode--><pre><code class='perl'>#!/usr/bin/perl
    use threads;
    use threads::shared;

    my $threads = 3;
    my @trl = ();



    $trl[$_] = threads->create(\&gogo) for 0..$threads - 1;
    $_->join for @trl;

    my ($password,$sites);
    sub gogo
    {
    open (F,"<sites.txt");
    while(my $site=<F>){

    chomp($site);

    open (N,"<pass.txt");
    while(my $pass=<N>){

    chomp($pass);

    print "$site=$pass\n";

    }}}
    <>;[/CODE]
    Но результат с повторами, т.е 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 раз с этим сталкиваюсь и не могу решить.
     
Загрузка...
Похожие Темы - Траблы Потоками
  1. Rolana
    Ответов:
    0
    Просмотров:
    883
  2. vladis222
    Ответов:
    2
    Просмотров:
    1.669
  3. Vadik(R)
    Ответов:
    3
    Просмотров:
    3.042

Поделиться этой страницей