LINUX.ORG.RU

python: общение между форками


0

0

Имеются форки, которым необходимо обмениваться информацией. Сокеты-пайпы не очень подходят, так как часто информация, созданная одним процессом требуется 2-3 другими процессами.

Нормальный system v-шный ipc в питоне отсутствует (хотя когда-то был).

Есть какой-нить человеческий вариант?

★★★★★

>Нормальный system v-шный ipc в питоне отсутствует (хотя когда-то был).

На Парнасе было

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

> А почему именно форки? Потоки не подходят?

С потоками я [censored] уже неделю. Нормальной многозадачности ввиду GIL пытаюсь добится.

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

> На Парнасе было

Эээ. Можно по-точнее?

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

> import mmap

Что-то в этом есть, подумаю...

> Или multicast сокеты.

Слишком мудрено. Вся остальная система окажется проще, чем обмен данными унутре.

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

>С потоками я [censored] уже неделю. Нормальной многозадачности ввиду GIL пытаюсь добится.

А можно поподробней? У меня сообщения между потоками сделаны через очередь. В чем проблема с многозадачностью?(это не укор, а просто очень интересно)

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

Претензии были изложены тут (обсуждать удобнее уже тут - та тема далеко ушла) - http://www.linux.org.ru/jump-message.jsp?msgid=1651901

Главный вопрос (цитата из той темы):

================

Почитал это - http://www.python.org/doc/faq/library/#id15

Там говорится, что процессы запускаются строго поочередно, "что б не повредить случайно что-нить параллельной записью". Нафига тогда, спрашивается, нужны локи, если умный интерпретатор с помощью GIL сам лочит всё и вся?

================

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

Я уже погуглил. Тоесть даже на многопроцессорной машине работает всего один поток...маразм. Либо еще один изврат, либо переползу на другой язык. Смотрю на специфику-похоже второе...

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

А меня бы на 100% устроил обычный system-v ipc, который почему-то выбросили... Пока еще с тредами извращаюсь, но, боюсь, буду что-то другое думать.

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

Может подскажешь-есть куча потоков, которые принимают данные от клиентов(сокеты). Обрабатывают и заносят в очередь. Там один поток извлекает данные и заносит в массив, отправляет информацию об изменениях всем остальным(в определенной области). Как такое реализовать с форками? Подключение к клиенту не подходит

Дело в том, что поток работающий с клиентом только принимает информацию=(. И всегда висит на ожидании прибытия её

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

В ipc есть те же семафоры, очереди и шаренная память. Не вижу проблемы в реализации этой задачи форками.

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