2015-07-28 13 views
0

Видел эту строку кода, но не смог найти документациюpython non blocking recv с каналом между процессами?

self.conn.setblocking(0) 

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

ответ

1

Это, скорее всего, что вы смотрите: https://docs.python.org/2/library/socket.html#socket.socket.setblocking

Вы не даете много деталей, так что я не совсем уверен, что вы пытаетесь сделать, но, как правило, когда у вас есть несколько сокетов, вы хотите опросить, вы будете использовать select (см. эти examples от PyMOTW).

+0

Является ли труба между процессами розеткой? – zehelvion

+0

Не знаете, о каких трубах вы говорите, но это функция сокета, поэтому self.conn почти наверняка является сокетом. Большинство «труб» будут реализованы под каким-то сокет. – bj0

+0

Закончено с помощью select и отлично работает с трубами для наших нужд – zehelvion