![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
CiklodoL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 11.8.2007 Репутация: нет Всего: нет |
Здравствуйте, у меня следующая проблема при многопоточности: при чтение из файла в цикле дескриптор файла выдаёт пустое значение, - как я понял IO не успевает за потоками и циклом в них, если файл загрузить в массив и потом снимать из него то всё нормально работает, но этот вариант не подходит из за размеров файла, собственно вопрос - как.. сделать чтобы чтение успевало за циклом
привожу сам саб многопоточности: sub Thr { while ($a){ $p = <file>; ...тут идёт отправка запроса и считывание ответа... } |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
сделать задержку?
|
|||
|
||||
CiklodoL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 11.8.2007 Репутация: нет Всего: нет |
если сделать задержку, то скорость упадёт...
Спасибо, я сам разобрался, сделал сначала заполнение массива частью данных из файла, затем когда массив опустевает он снова заполняется и потоки вновь запускаются Это сообщение отредактировал(а) CiklodoL - 17.8.2007, 14:06 |
|||
|
||||
CiklodoL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 11.8.2007 Репутация: нет Всего: нет |
Всем доброе время суток, у меня возник еще один вопрос: как убить поток?
привожу код: тут собственно создаются потоки, но когда подключится не удаётся, то вылетает Thread 13 terminated abnormally:.. вопрос - как корректно завершить поток в таком случае? for( 0..$thr ) { $trl[$_] = threads->create( \&Flood, $_ ); } for( 0..$thr ) { $trl[$_]->join; } sub Flood { $sock = IO::Socket::INET->new(PeerAddr => $host, PeerPort => $port, Proto => 'tcp') || (а тут в случае если не удалось подключиться, то поток должен убиться) ... ... .... } поставил || return 0, ошибки не вылетают но при это потоки которые не смогли подключиться будут висеть в памяти.... ? Это сообщение отредактировал(а) CiklodoL - 24.8.2007, 18:56 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |