sebsauvage.net

Ce site n'est pas le site officiel.
C'est un blog automatisé qui réplique les articles automatiquement

Update

Updating database... Please wait.

Why Threads are a Bad Idea (for most purposes) (1995) [pdf] | Hacker News

Wednesday 14 June 2017 at 01:51

Sous le coude: Pourquoi les threads sont (généralement) une mauvaise idée.
(Voir le lien vers le PDF en haut de page, mais aussi les liens vers divers articles un peu plus bas.)

En tant que développeur, même si c'est particulièrement intellectuellement attirant, il faut éviter d'utiliser des threads.
Pour des tas de raisons: difficile à développer, l'accès aux données est délicat à implémenter, risques de deadlocks, difficulté à débugguer...

Règle d'or: Moins vous avez de threads, mieux c'est.

Note: En Python je me suis beaucoup amusé avec les threads, et ce qui a bien marché pour réduire la difficulté de communication entre threads, c'est d'utiliser l'objet Queue qui est thread-safe : https://docs.python.org/2/library/queue.html
Du coup, on peut passer des objets (données ou commandes) entre threads très facilement et sans réellement se faire chier avec des sections critiques et sémaphores.
(Permalink)

Source: https://news.ycombinator.com/item?id=14547063


Error happened ! 0 - Undefined index: path In: /home/dotmanacac/dotmana/streisand/sebsauvage/index.php:531 http://www.dotmana.com/streisand/sebsauvage/?Why-Threads-are-a-Bad-Idea-(for-most-purposes)-(1995)-pdf-Hacker-N #0 /home/dotmanacac/dotmana/streisand/sebsauvage/index.php(531): exception_error_handler(8, 'Undefined index...', '/home/dotmanaca...', 531, Array) #1 /home/dotmanacac/dotmana/streisand/sebsauvage/index.php(305): VroumVroum_Blog->mirrorMediasForArticle('Un dictionnaire...', 'https://dicosig...') #2 /home/dotmanacac/dotmana/streisand/sebsauvage/index.php(440): VroumVroum_Blog->insertOrUpdateArticle('https://sebsauv...', 'Dictionnaire de...', 'https://dicosig...', 1594800348, 'Un dictionnaire...') #3 /home/dotmanacac/dotmana/streisand/sebsauvage/index.php(792): VroumVroum_Blog->update() #4 {main}