Ne asyncio prend en charge les e/S asynchrones pour les opérations de fichier?
Ne asyncio prend en charge les e/S asynchrones pour les opérations de fichier? Si oui, comment je peux l'utiliser dans Python 3.5 avec async/await syntaxe de code?
Tu veux dire comme dans la doc et des exemples? docs.python.org/3/library/... docs.python.org/3/library/...
Je veux dire, j'ai besoin de non-blocage des e/S de fichier fonctionnalité. Mais dans les docs que j'ai trouvé uniquement des descripteurs de fonctions de surveillance.
Si vous voulez juste non bloquant IO vous devez simplement être en mesure d'utiliser python threads. Voulez-vous async IO ou non bloquant IO? stackoverflow.com/questions/319132/... pourrait avoir quelques infos utiles.
Nous allons expliquer. J'ai plusieurs Tâches dans mon IOLoop, qui travaillent avec des sockets. Et je veux ajouter une autre Tâche, qui va lire les données à envoyer à partir d'un fichier. La synchronisation sera effectuée par asyncio.La file d'attente.
Je veux dire, j'ai besoin de non-blocage des e/S de fichier fonctionnalité. Mais dans les docs que j'ai trouvé uniquement des descripteurs de fonctions de surveillance.
Si vous voulez juste non bloquant IO vous devez simplement être en mesure d'utiliser python threads. Voulez-vous async IO ou non bloquant IO? stackoverflow.com/questions/319132/... pourrait avoir quelques infos utiles.
Nous allons expliquer. J'ai plusieurs Tâches dans mon IOLoop, qui travaillent avec des sockets. Et je veux ajouter une autre Tâche, qui va lire les données à envoyer à partir d'un fichier. La synchronisation sera effectuée par asyncio.La file d'attente.
OriginalL'auteur CthUlhUzzz | 2016-01-09
Vous devez vous connecter pour publier un commentaire.
La plupart des systèmes d'exploitation ne prennent pas en charge de fichier asynchrone opérations.
C'est pourquoi
asyncio
ne les supporte pas non plus.Voir le asyncio wiki pour de plus amples explications.
node.js
utilise le pool de thread en interne pour fournir async fichier APIVous voulez dire qu'ils ne la soutiennent?
Ils émuler, cela fait une différence.
Il n'est pas réalisé en collaboration, de sorte qu'il souffre d'avoir de code autour de de préemption des changements de contexte, donc inefficace dans l'ensemble?
Il utilise le pool de thread en interne, et non coopérative de l'interrupteur. La Performance est assez bonne même si.
OriginalL'auteur Andrew Svetlov
Qui dépend de la bibliothèque que vous utilisez.
curio
offre cette fonctionnalité, https://curio.readthedocs.io/en/latest/reference.html#module-curio.fileplaine
asyncio
ne l'est pas, mais il y a 3rd party bibliothèques, par exemple https://github.com/Tinche/aiofiles (qui est vraiment synchrone d'accès au fichier isolé dans les threads)Les systèmes d'exploitation modernes offrent de fichier asynchrone primitives, mais ils sont variés, ainsi chacun aurait besoin propre mise en œuvre. Veuillez comparer:
Je soupçonne quelqu'un va bientôt rip sous-jacents async io de
node.js
et faire une bonne bibliothèque Python, ou peut-être quelqu'un a déjà.Est-il une recommandation? aiofiles comme suggéré par l'officiel de python asyncio docs?
Pour
curio
, la structure canonique de la recommandation estcurio.file
; Il ne semble pas être une recommandation pourasyncio
, afin de choisir ce qui est populaire, commeaiofiles
.OriginalL'auteur Dima Tisnek
asyncio n'ont pas de soutien pour cela. Cependant, aiofiles prend en charge cette. Jetez un coup d'oeil.
OriginalL'auteur Z. Qui