Comments on: En attendant asyncio http://sametmax.com/en-attendant-asyncio/ Deux développeurs en vadrouille qui se sortent les doigts du code Wed, 05 Feb 2014 12:15:31 +0000 hourly 1 http://wordpress.org/?v=3.3.1 By: Sam http://sametmax.com/en-attendant-asyncio/#comment-19127 Sam Wed, 29 Jan 2014 16:20:51 +0000 http://sametmax.com/?p=8781#comment-19127 Oui c'est à peu près ça. Je te sens déçu mon pti Benoit. Tu espérais que je règle tes problèmes d'erection ? Oui c’est à peu près ça. Je te sens déçu mon pti Benoit. Tu espérais que je règle tes problèmes d’erection ?

]]>
By: Benoit http://sametmax.com/en-attendant-asyncio/#comment-19122 Benoit Wed, 29 Jan 2014 15:34:28 +0000 http://sametmax.com/?p=8781#comment-19122 @ Sam en gros ton article c'est surtout "En attendant de faire des IO asynchrones, on va utiliser des threads". Et finalement, t'as fait ça: https://medium.com/building-things-on-the-internet/40e9b2b36148 mais en moins bien. Well done john. t'es devenu un blogueur influent :) @ Sam en gros ton article c’est surtout “En attendant de faire des IO asynchrones, on va utiliser des threads”. Et finalement, t’as fait ça: https://medium.com/building-things-on-the-internet/40e9b2b36148 mais en moins bien.

Well done john. t’es devenu un blogueur influent :)

]]>
By: Sam http://sametmax.com/en-attendant-asyncio/#comment-19121 Sam Wed, 29 Jan 2014 15:21:33 +0000 http://sametmax.com/?p=8781#comment-19121 @Thomas: tu encules des mouches là. L'article n'est pas un cours fondamental sur l'implémentation de l'IO aynschrone, il démontre comment faire de l'IO asynchrone facilement avec la lib standard tant qu'on a pas une solution spécialisée comme asyncio pour le faire. Bien sûr que les threads ne sont pas la même chose que le multiplexing, mais on s'en branle, ce qui nous interesse c'est que notre code n'attende pas pendant que l'IO bloque. @Thomas: tu encules des mouches là. L’article n’est pas un cours fondamental sur l’implémentation de l’IO aynschrone, il démontre comment faire de l’IO asynchrone facilement avec la lib standard tant qu’on a pas une solution spécialisée comme asyncio pour le faire. Bien sûr que les threads ne sont pas la même chose que le multiplexing, mais on s’en branle, ce qui nous interesse c’est que notre code n’attende pas pendant que l’IO bloque.

]]>
By: Sam http://sametmax.com/en-attendant-asyncio/#comment-19119 Sam Wed, 29 Jan 2014 15:02:30 +0000 http://sametmax.com/?p=8781#comment-19119 <blockquote>Tu parles d’IO asynchrone, mais tu mets dans un exemple des IO bloquantes dans des threads.</blockquote> Les threads en Python ne servent qu'à ça : faire des opérations bloquantes en parallèle. Il n'y a aucun autre interêt du fait du GIL. <blockquote>Pourquoi n’as-tu pas parlé de gevent ou twisted alors ?</blockquote> Parce que ce post se concentre sur les solutions de la stdlib. <blockquote>Du coup, tu essayes de répondre à l’asynchrone, mais pas au principes d’IO.</blockquote> J'ai hate que tu m'explique ce qu'est le principe d'IO. Et ce que veut dire "répondre à l'asynchrone". <blockquote>Mais t’as ptet jamais codé de client ou serveur un peu plus bas niveau avec poll/kpoll/select en fait ?</blockquote> Mais quel rapport avec la choucroute ? C'est comme si on parlait d'outils de compilation et que tu me demandais si j'avais codé en assembleur. <blockquote>Aller, je suis un mec cool, je vais te guider dans tes recherches</blockquote> C'est mignon. <blockquote>Et donc Asynchronous I/O n’est pas uniquement “asynchrone” :)</blockquote> Ah. Alors là effectivement je ne peux plus rien dire. Asynchronious I/O. asyncio. Ce n'est pas uniquement pour faire de l'asynchrone. D'ailleurs, dans le lien que tu donnes, la première ligne n'est pas du tout : <blockquote>This module provides infrastructure for writing single-threaded <strong>concurrent code using coroutines, multiplexing I/O access</strong> over sockets and other resources</blockquote> Bref, de l'IO asynchrone. Bonne journée.

Tu parles d’IO asynchrone, mais tu mets dans un exemple des IO bloquantes dans des threads.

Les threads en Python ne servent qu’à ça : faire des opérations bloquantes en parallèle. Il n’y a aucun autre interêt du fait du GIL.

Pourquoi n’as-tu pas parlé de gevent ou twisted alors ?

Parce que ce post se concentre sur les solutions de la stdlib.

Du coup, tu essayes de répondre à l’asynchrone, mais pas au principes d’IO.

J’ai hate que tu m’explique ce qu’est le principe d’IO. Et ce que veut dire “répondre à l’asynchrone”.

Mais t’as ptet jamais codé de client ou serveur un peu plus bas niveau avec poll/kpoll/select en fait ?

Mais quel rapport avec la choucroute ? C’est comme si on parlait d’outils de compilation et que tu me demandais si j’avais codé en assembleur.

Aller, je suis un mec cool, je vais te guider dans tes recherches

C’est mignon.

Et donc Asynchronous I/O n’est pas uniquement “asynchrone” :)

Ah. Alors là effectivement je ne peux plus rien dire. Asynchronious I/O. asyncio. Ce n’est pas uniquement pour faire de l’asynchrone.

D’ailleurs, dans le lien que tu donnes, la première ligne n’est pas du tout :

This module provides infrastructure for writing single-threaded concurrent code using coroutines, multiplexing I/O access over sockets and other resources

Bref, de l’IO asynchrone.

Bonne journée.

]]>
By: benoit http://sametmax.com/en-attendant-asyncio/#comment-19117 benoit Wed, 29 Jan 2014 14:37:36 +0000 http://sametmax.com/?p=8781#comment-19117 Ah, mais en fait t'as pas bien compris asyncio. http://docs.python.org/3.4/library/asyncio.html Et donc Asynchronous I/O n'est pas uniquement "asynchrone" :) Ah, mais en fait t’as pas bien compris asyncio.

http://docs.python.org/3.4/library/asyncio.html

Et donc Asynchronous I/O n’est pas uniquement “asynchrone” :)

]]>
By: Benoit http://sametmax.com/en-attendant-asyncio/#comment-19115 Benoit Wed, 29 Jan 2014 14:31:59 +0000 http://sametmax.com/?p=8781#comment-19115 Max, Sam, Tu parles d'IO asynchrone, mais tu mets dans un exemple des IO bloquantes dans des threads. Pourquoi n'as-tu pas parlé de gevent ou twisted alors ? Du coup, tu essayes de répondre à l'asynchrone, mais pas au principes d'IO. Mais t'as ptet jamais codé de client ou serveur un peu plus bas niveau avec poll/kpoll/select en fait ? Aller, je suis un mec cool, je vais te guider dans tes recherches: http://man7.org/linux/man-pages/man2/socket.2.html fais donc un "grep" sur SOCK_NONBLOCK Merci pour tes réponses ! Max, Sam,

Tu parles d’IO asynchrone, mais tu mets dans un exemple des IO bloquantes dans des threads.
Pourquoi n’as-tu pas parlé de gevent ou twisted alors ?

Du coup, tu essayes de répondre à l’asynchrone, mais pas au principes d’IO.
Mais t’as ptet jamais codé de client ou serveur un peu plus bas niveau avec poll/kpoll/select en fait ?

Aller, je suis un mec cool, je vais te guider dans tes recherches:

http://man7.org/linux/man-pages/man2/socket.2.html
fais donc un “grep” sur SOCK_NONBLOCK

Merci pour tes réponses !

]]>
By: Thomas http://sametmax.com/en-attendant-asyncio/#comment-19114 Thomas Wed, 29 Jan 2014 14:30:57 +0000 http://sametmax.com/?p=8781#comment-19114 "j’attends avec impatience asyncio qui, grâce à yield from, va intégrer l’asynchrone de manière plus naturelle au langage." => C'est surtout complètement différent. asyncio repose sur l'utilisation de librairies asynchrones (select, epoll, kqueue, etc.) et non pas sur du multithreading. Votre article ne mentionne pas cette différence fondamentale, ce qui donne l'impression que le sujet n'est pas maitrisé. “j’attends avec impatience asyncio qui, grâce à yield from, va intégrer l’asynchrone de manière plus naturelle au langage.”
=> C’est surtout complètement différent.

asyncio repose sur l’utilisation de librairies asynchrones (select, epoll, kqueue, etc.) et non pas sur du multithreading.

Votre article ne mentionne pas cette différence fondamentale, ce qui donne l’impression que le sujet n’est pas maitrisé.

]]>
By: Sam http://sametmax.com/en-attendant-asyncio/#comment-19110 Sam Wed, 29 Jan 2014 14:06:07 +0000 http://sametmax.com/?p=8781#comment-19110 Cher Benoit, tu cumules le droit à plusieurs tampon, alors j'en ai choisis un fédérateur. D'abord, l'article s'intitule clairement "En <strong>attendant</strong> asyncio". Je vois pas comment on peut faire plus clair. Ensuite, comme expliqué dans l'article pointé par le PREMIER LIEN qui est donné, l'interêt de l'asynchrone est justement de faire de l'IO non bloquant. Sinon ça n'a AUCUN interêt. Or cet article montre exactement comment télécharger du contenu web (donc de faire de de l'IO) sans bloquer, en utilisant des pools de threads ou de process. EN ATTENDANT qu'asyncio soit de la partie avec la 3.4. Cher Benoit, tu cumules le droit à plusieurs tampon, alors j’en ai choisis un fédérateur.

D’abord, l’article s’intitule clairement “En attendant asyncio”. Je vois pas comment on peut faire plus clair.

Ensuite, comme expliqué dans l’article pointé par le PREMIER LIEN qui est donné, l’interêt de l’asynchrone est justement de faire de l’IO non bloquant. Sinon ça n’a AUCUN interêt.

Or cet article montre exactement comment télécharger du contenu web (donc de faire de de l’IO) sans bloquer, en utilisant des pools de threads ou de process. EN ATTENDANT qu’asyncio soit de la partie avec la 3.4.

]]>
By: benoit http://sametmax.com/en-attendant-asyncio/#comment-19108 benoit Wed, 29 Jan 2014 13:53:08 +0000 http://sametmax.com/?p=8781#comment-19108 <span class="tusors"></span>Hello, Votre article parle d'asyncio mais finalement vous ne traitez pas le sujet: """ Notez qu’on peut remplacer ProcessPoolExecutor par ThreadPoolExecutor si vous n’avez pas besoin d’un process séparé mais juste de l’IO non bloquant. """ Ce n'est pas exactement le but d'asyncio d'utiliser un pool de thread ou de process, mais bien d'avoir une lib asynchrone comme par exemple https://github.com/aaugustin/websockets ou http://asyncio-redis.readthedocs.org/en/latest/ Bref, je suis persuadé que vous allez etre capables de faire un article plus complet, et je l'attend avec impatience. concernant trollius j'ai hate de voir comment on va reussir a faire une lib compatible asyncio et trollius. Hello,

Votre article parle d’asyncio mais finalement vous ne traitez pas le sujet:

“”"
Notez qu’on peut remplacer ProcessPoolExecutor par ThreadPoolExecutor si vous n’avez pas besoin d’un process séparé mais juste de l’IO non bloquant.
“”"
Ce n’est pas exactement le but d’asyncio d’utiliser un pool de thread ou de process, mais bien d’avoir une lib asynchrone comme par exemple https://github.com/aaugustin/websockets ou http://asyncio-redis.readthedocs.org/en/latest/

Bref, je suis persuadé que vous allez etre capables de faire un article plus complet, et je l’attend avec impatience.

concernant trollius j’ai hate de voir comment on va reussir a faire une lib compatible asyncio et trollius.

]]>
By: gawel http://sametmax.com/en-attendant-asyncio/#comment-18662 gawel Sat, 18 Jan 2014 20:42:02 +0000 http://sametmax.com/?p=8781#comment-18662 Il existe un port d'asyncio pour python2 https://pypi.python.org/pypi/trollius/ Il faut oublier les yield from mais les tasks et autres fonctionne très bien. Il existe un port d’asyncio pour python2 https://pypi.python.org/pypi/trollius/

Il faut oublier les yield from mais les tasks et autres fonctionne très bien.

]]>