| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > lwp : shared |
| Автор: Валерия 19.9.2010, 15:37 | ||
Почему такое не работает? Разве через shared нельзя расшарить кроме переменной или масива еще и объект?
|
| Автор: DurRandir 19.9.2010, 15:54 |
| Расшарить - можно. Но не так) Да и очень многие не-pure perl модули с потоками не дружат (ТАК - точно не дружат, если создать новый объект в каждом потоке - могут и заработать). PS: про "не так": threads::shared exports a version of bless() that works on shared objects such that blessings propagate across threads. PPS: если задача стоит "получить одновременно несколько страниц", то потоки - неправильный инструмент. Смотрите в сторону AnyEvent::HTTP. |
| Автор: Валерия 19.9.2010, 23:22 |
| Про "не так" немного не поняла) Мне именно подобным способом расшарить нужно) |
| Автор: DurRandir 20.9.2010, 00:54 |
| Мне очень интересно - зачем? Т.е. какую задачу вы этим пытаетесь решить? |
| Автор: Валерия 20.9.2010, 07:31 |
| 1) Нужны общие куки между всеми потоками 2) Однозначно будет меньше расход оперативы, а у меня чахленький сервер, поэтому если я такое проверну, смогу запустить больше потоков |
| Автор: shamber 20.9.2010, 09:13 |
| Валерия, а общие куки в файлик скинуть и оттуда прочитать разве нельзя? |
| Автор: gcc 20.9.2010, 15:59 |
| Валерия, еще есть LWP::Parallel http://search.cpan.org/search?query=LWP%3A%3AParallel&mode=all там не многопоточнось, а как-то по другому работает... |
| Автор: DurRandir 20.9.2010, 17:20 |
| Ааа, вы считаете, что, запустив 20 потоков, у вас будет небольшой расход памяти? Вынужден вас разочаровать. Ну и таким способом ничего не выйдет. Далеко не факт, что LWP - потокобезопасный класс (хинт - читайте про thread-safety & reentrant methods, если хотите вызывать методы над общим объектом). |