Неблокирование доступа к файлу со Скрученным

моя реализация похожа, хотя и не такая аккуратная:

class MyClass:
    def __init__(self, name):
        self.name = name
    def __add__(self, other):
        for x in range(1, len(self.name)):
            a = list(self.name)[-1 * x]
            return self.name[:len(self.name)-x] + chr(ord(a) + other)


>>> CAA = MyClass('CAA')
>>> CAA + 1
'CAB'
>>> CAA + 2
'CAC'
>>> CAA + 15
'CAP'
27
задан rhettg 12 November 2009 в 08:47
поделиться

4 ответа

Я думаю, что вы ищете модуль fdesc . Для получения дополнительной информации о неблокирующем вводе / выводе в Python вы также можете посмотреть это видео .

14
ответ дан n.st 15 October 2019 в 06:36
поделиться

Модуль fdesc может быть полезен для асинхронного общения с сокетом или каналом, но когда ему дается fd, который ссылается на обычный файл файловой системы, он блокирует io (и при этом через довольно странный интерфейс). Для диска io fdesc - это змеиное масло; не используйте его.

По состоянию на май 2017 года единственный разумный способ получить асинхронный диск io в витой форме - это обернуть синхронные вызовы io в deferToThread.

2
ответ дан Nathaniel J. Smith 15 October 2019 в 06:36
поделиться

Я не уверен, чего вы хотите достичь. Когда вы ведете журнал, Python гарантирует (с помощью журнала глобального интерпретатора), что сообщения журнала из нескольких потоков попадают в файл одно за другим.

Если вас беспокоит блокировка ввода-вывода, тогда ОС добавляет буферы по умолчанию. для ваших файлов (обычно 4 КБ), и вы можете передать размер буфера в вызове open () .

Если вас беспокоит что-то еще, уточните свой вопрос.

-8
ответ дан 28 November 2019 в 05:54
поделиться

В Twisted есть открытый билет для этого - # 3983 .

3
ответ дан 28 November 2019 в 05:54
поделиться
Другие вопросы по тегам:

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