Форум сайта python.su
0
Возникла задача передавать данные в нужный поток. Каждый созданный поток имеет уникальное известное имя. Возможно ли это сделать и как правильнее это реализовать?
Офлайн
32
в главном потоке хранить список дочерних потоков, ходить по этому списку и передавать данные
Офлайн
26
ИМХО, dict логичнее. Просто словарь имён потоков к потокам.
Офлайн
20
Queue? Только идентификаторы/имена потоков здесь не причём.
p.s. Не может быть такого понятия как хранить данные в потоке, данные хранятся в памяти, а в случае многопоточной модели (один процесс) все потоки разделяют одно и то же адресное пространство. Остаётся только решить проблему одновременного доступа к участку памяти (я предлагаю посмотреть Queue для этого).
..bw
Отредактировано (Июнь 28, 2010 18:28:56)
Офлайн
0
o7412369815963Для меня как раз и вопрос как передать данный в поток нужный… Извиняюсь если уж совсем что то глупое спрашиваю.
в главном потоке хранить список дочерних потоков, ходить по этому списку и передавать данные
Офлайн
0
bwОчереди как я понимаю не подходят, потому как допустим 20 поток начнут следить за очередью и будут брать данные не предназначенные для него.
Queue? Только идентификаторы/имена потоков здесь не причём.
..bw
Офлайн
20
Это задача для подготовительной группы детского сада.
Сделай 20 очередей, кто мешает. Пусть каждый поток работает только со своей.
..bw
Офлайн
0
Если кратко то в каждом потоке живет клиент мессенджера (имеет своё имя), необходимо отправлять сообщения от нужного имени…
Офлайн
0
bwПотоков может быть в один момент 20, а через минуту 100…
Это задача для подготовительной группы детского сада.
Сделай 20 очередей, кто мешает. Пусть каждый поток работает только со своей.
..bw
Офлайн
20
Я не вижу в этом проблемы. Альтернативный вариант, это искать платформозависимые (ОСь) решения, но тут я ничего подсказать не могу. А вообще, я настоятельно не рекомендую увлекаться потоками в Python, особенно если они выполняют ресурсоёмкие вычисления (заметно утилизируют проц.). Хотя эта рекомендация распространяется на все случаи. Речь про системные потоки, не микронити (concurrence, greenlet, stackless).
..bw
Офлайн