Comments on: Quelle est la différence entre “bloquer” et “en cours d’exécution” ? http://sametmax.com/quelle-est-la-difference-entre-bloquer-et-en-cours-dexecution/ Du code, du cul Sat, 07 Nov 2015 11:08:18 +0000 hourly 1 http://wordpress.org/?v=4.1 By: foxmask http://sametmax.com/quelle-est-la-difference-entre-bloquer-et-en-cours-dexecution/#comment-152430 Fri, 12 Dec 2014 20:04:44 +0000 http://sametmax.com/?p=12766#comment-152430 Cool les tampons sont de retour

]]>
By: Biganon http://sametmax.com/quelle-est-la-difference-entre-bloquer-et-en-cours-dexecution/#comment-151980 Wed, 10 Dec 2014 21:35:05 +0000 http://sametmax.com/?p=12766#comment-151980 L’IO compte pas pour des prunes donc (hin hin hin)

]]>
By: Alkareth http://sametmax.com/quelle-est-la-difference-entre-bloquer-et-en-cours-dexecution/#comment-151937 Wed, 10 Dec 2014 19:09:05 +0000 http://sametmax.com/?p=12766#comment-151937 @Sam : c’est pour quand ?

on bloque en attendant, non pas Godot, mais l’I/O

Merci pour ça, et bon article du reste. Vous avez un certain talent pour clarifier les choses et vulgariser, en un sens. Je suis curieux d’un futur dossier pour la parallélisation, c’est un peu mon dada en ce moment.

]]>
By: Sam http://sametmax.com/quelle-est-la-difference-entre-bloquer-et-en-cours-dexecution/#comment-151900 Wed, 10 Dec 2014 14:48:36 +0000 http://sametmax.com/?p=12766#comment-151900 Cet article parle de la prog non bloquante en générale, et tu viens évangéliser GO, et en plus en mélangeant des tas de choses : comment ça marche, des questions de syntaxe, des contextes différents histoire de ne pas pouvoir faire une comparaison juste. Comme un troll emac viendrait sur un article à propos de l’encoding de caractères.

Stop.

Heureusement qu’on a pas encore restauré les tampons.

]]>
By: Pierre Durand http://sametmax.com/quelle-est-la-difference-entre-bloquer-et-en-cours-dexecution/#comment-151887 Wed, 10 Dec 2014 11:56:02 +0000 http://sametmax.com/?p=12766#comment-151887 Les technologies “non bloquantes” ont 2 intérêts:
– pouvoir facilement à partir d’un point de ton code, lancer plusieurs actions concurrentes, et les “regrouper” plus tard
– pouvoir exécuter de nombreuses requêtes concurrentes sans bloquer un thread (qui est une ressource coûteuse en RAM à cause de la stack)

Le soucis de NodeJS/Javascript, c’est que pour ces 2 points, il utilise des callbacks qui rendent le code illisible.

En Go, c’est différent.
Pour lancer des action concurrentes on utilise le mot clé “go”, et pour synchroniser on peut utiliser de nombreuses techniques comme les channel ou les waitgroup. C’est aussi acrobatique que les callback js, mais je vois mal comment on peut faire autrement.
En revanche, le 2em point est mieux traité en Go qu’en JS.
Dans le cas d’une app web, on peut très bien écrire un code “normal/bloquant”.
Pas besoin de faire de goroutine/channel/waitgroup/”yield”.
(bon OK, c’est le serveur http de GO qui crée des goroutines à la volée pour chaque requête, mais c’est masqué au développeur)
Et le processus utilisera un nombre de thread très réduit.
Je trouve ça plus élégant: on écrit un code “bloquant”, mais il se comporte comme du code “non bloquant”.

]]>
By: Sam http://sametmax.com/quelle-est-la-difference-entre-bloquer-et-en-cours-dexecution/#comment-151639 Tue, 09 Dec 2014 20:29:52 +0000 http://sametmax.com/?p=12766#comment-151639 Mais en Go il y a un mécanisme de coroutine et de channels signalées par le mot clé Go qui marque tout ça, donc on retombe dans ce que je disais :

Un outil non bloquant exigera quelque chose pour gérer le retour du résultat plus tard: un callback, une promesse, un yield

Python fait pareil avec yield.

]]>
By: Pierre Durand http://sametmax.com/quelle-est-la-difference-entre-bloquer-et-en-cours-dexecution/#comment-151617 Tue, 09 Dec 2014 19:07:47 +0000 http://sametmax.com/?p=12766#comment-151617 En Go, tu peux très bien faire:

res = faire_operation_sur_IO()
faire_un_truc_avec_le_res(res)

pourtant le thread qui l’exécute n’est pas bloqué!

:)

]]>
By: Sam http://sametmax.com/quelle-est-la-difference-entre-bloquer-et-en-cours-dexecution/#comment-151605 Tue, 09 Dec 2014 17:43:12 +0000 http://sametmax.com/?p=12766#comment-151605 Non, entre “entre train de bloquer” et “en cours d’exécution”. Le programme n’est pas bloqué, il bloque, activement, et volontairement. C’est une action, pas un état, que je souhaites mettre en avant.

]]>
By: Luthaf http://sametmax.com/quelle-est-la-difference-entre-bloquer-et-en-cours-dexecution/#comment-151603 Tue, 09 Dec 2014 17:01:34 +0000 http://sametmax.com/?p=12766#comment-151603 Entre bloqué et en cours d’exécution !

]]>