LINUX.ORG.RU

Может сокеты?

anonymous
()

Как между ними обмениваться данными?

Да как угодно: пайпы, д-басы, етк. Я бывало делал через веб приложение :-)

FIL ★★★★
()

1) Гугл
2) «interprocess communication python»
3) PROFIT!

Gvidon ★★★★
()

см. сокеты, пайпы, zeromq

mashina ★★★★★
()
Ответ на: комментарий от Closius

зачем городить чтото

Затем, что может получиться проще.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от Closius

нахрена

Задачу опишите подробней, тогда я смогу решить нахрена

zolden ★★★★★
()

mmap shm с lock free синхронизацией доступа (или на крайний случай mutex в той же разделяемой памяти). Остальное для слабаков.

Накладные расходы будут ровно те же, что и при обмене данными внутри одного процесса (удивляюсь, что никто не предложил, хотя нет, в zmq такой функционал есть). Только реализовать все это на питоне может потребовать интеллекта сильно больше, чем на плюсах.

P.S. Жду следующего вопроса, чем сериализовать данные...

anonymous
()
Ответ на: комментарий от no-such-file

А в чем там преимущество перед обычными сокетами? То что есть механизм очереди?

Closius
() автор топика
Ответ на: комментарий от anonymous

Самое быстрое что? Я ж так понимаю сокет должен открыться и закрыться. На это воемя надо.. Или так другой алгоритм?

Closius
() автор топика

Продолжение этого, насколько я понимаю. Сокеты, nanomsg... ну, хоть не lock-free в shared memory.

tailgunner ★★★★★
()
Ответ на: комментарий от Closius

Самое быстрое что? Я ж так понимаю сокет должен открыться и закрыться. На это воемя надо.. Или так другой алгоритм?

Если бы тебе надо было что-то быстрее unix domain sockets, ты бы вопрос по-другому задавал.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Я просто хочу таким образом распаралелить асинхронный сервер на питоне. То есть запустить несколько не связанных процессов и передавать между ними сообщения. И вот вопрос: если я буду использовать сокеты - не станет ли это узким местом моей параллельной системы? То есть не будет ли моя распаралеленпя система работать дольще чем одна.

Closius
() автор топика
Ответ на: комментарий от Closius

Ты прочитал на сайте то?

вангую, питоновские — просто обертки над беркли сокетс, наномсж же — «умные сокеты».

anonymous
()
Ответ на: комментарий от anonymous

Да вот уже обгуглился.. Я так понимаю что в nanomsg действительно умные сокеты(там де можно выбирать какую технологию юзать, ipc или tcp или что еще), которые работают быстрее «питоновских».

Просто не до конца понял принцип работы сокетов вообще..

Closius
() автор топика
Ответ на: комментарий от Closius

так сначала нужно почитать про IPC и разные его способы, а потом выбрать. Есть подозрение, что с твоим подходом у тебя в любом случае все будет тормозить.

anonymous
()
Ответ на: комментарий от Closius

Если тебе скорость важна, то питон ты зря выбрал. А для сообщений тебе хватит stdio.

anonymous
()
Ответ на: комментарий от Closius

Я просто хочу таким образом распаралелить асинхронный сервер на питоне.

Тогда почему процессы «не связаны»? Обычно в таких серверах один главный процесс порождает потомков-«рабочих».

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Ну так рекомендовано в документации (Tornado). Что запускается несколько процессов на разных портах и nginx их балансирует.

Я думал насчет порождения. Но как при этом будет балансироваться нагрузка?

Closius
() автор топика
Ответ на: комментарий от anonymous

Ты думаешь я не читал??? Или тебе тут перечислить почему я не хочу юзать mmap, shared memory, пайпы, сигналы, файлы и кучу еще чего? Не стоит делать преждевременных выводов.

Closius
() автор топика
Ответ на: комментарий от anonymous

Кстати берклевские сокеты не слишком ли жирно для взаимодействия внутри локальной машины?? Не лучше ли юзать юникс сокеты?

Closius
() автор топика
Ответ на: комментарий от Closius

Кстати берклевские сокеты не слишком ли жирно для взаимодействия внутри локальной машины

А вдруг завтра ты захочешь разнести процессы по разным машинам?

anonymous
()
Ответ на: комментарий от anonymous

ну это цифра с потолка.. Тут же надо знать размер сообщения, пропускную способность сети и производительность системы..

у меня размер сообщения примерно 1000 байт. Вот тут есть тест http://zeromq.org/results:0mq-tests-v03

Closius
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.