Там последствия к наличию многих процессов, пишут в единственного читателя на именованном канале в posix?

Вы можете использовать существующие функции из стандартной библиотеки вместо того, чтобы писать свои собственные, где это возможно:

uT = [(''.join(map(str, el)), sum(el)) for el in uT]

В этом случае:

''.join(map(str, el)) преобразует перестановку в строковое представление, которое вы хотел (0, 3, 3, ) -> '033', сначала покрывая каждый элемент строкой (используя map(str, el)), а затем соединяя строки.

sum(el) суммировали перестановку (0, 3, 3, ) -> 6

8
задан Aftermathew 25 February 2009 в 20:34
поделиться

1 ответ

Запись FIFO должна быть атомарной, пока она находится под размером страницы. Таким образом, не должно быть проблемы с 100-байтовыми сообщениями. На Linux макс. размер раньше был 4K, я полагаю, что это больше теперь. Я использовал эту технику в нескольких системах для передачи сообщений, так как записи заканчиваются атомарные.

Можно закончить с проблемой при использовании серии записей так как произведено буферизация могла бы вызвать синхронизирующую проблему. Поэтому удостоверьтесь, что целое сообщение записано когда-то. например, создайте строку, затем распечатайте, не печатайте несколько частей сразу.

s="This is a message"
echo $s

НЕТ

echo "This "
echo "is "
echo " a message"
11
ответ дан 5 December 2019 в 15:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: