改的是不同的变量,为什么互相拖慢
8 个线程各改各的计数器,为什么比单线程还慢?
Copiez la consigne, puis choisissez un modèle. Il joue l'examinateur et vous interroge acte par acte au lieu de vous donner la réponse.
Sur un téléphone où l'application est installée, le système l'ouvre directement. Dans WeChat, les liens n'ouvrent pas les applications externes : ouvrez-le d'abord dans un navigateur.
Le texte copié se termine par le corrigé dont le modèle se sert pour vous évaluer. Ne le lisez pas avant : ce qui compte, c'est de l'avoir déduit vous-même.
第一幕是个预测题:8 个线程各自对数组里自己那一格做自增,没有锁、没有共享变量,你猜比单线程快几倍。多数人答「8 倍」,实测可能比单线程还慢。
要害是一句话:竞争的单位是缓存行,不是变量。这一份会让你自己算出那 8 个 long 正好落在同一个 64 字节里。
修法那一幕会追一句很多人没想过的:既然 padding 有用,是不是所有共享数据都该 padding?
Ce que celle-ci travaille
Ce texte dans le dépôt (la solution est à la fin de ce fichier — vous la verrez)
Déjà fait celui-ci ?
Connectez-vous pour noter que vous l'avez fait : la prochaine fois, vous verrez quel jour c'était.
Notes de ceux qui l'ont fait
Comment s'en servir
Cette série enseigne au lieu d'interroger : elle vous guide au lieu de pousser jusqu'à ce que vous n'ayez plus rien à dire. Quand vous bloquez, elle demande d'abord à quel niveau (jamais entendu / je sais mais pas pourquoi / je sais pourquoi mais je n'y arrive pas), puis décide quoi donner. Elle ne donne la réponse qu'après deux tentatives de guidage — et vous demande ensuite de la redire avec vos mots.
Elle vous réclamera des chiffres sans relâche : répondez « ça coûte un peu » ou « c'est plus rapide » et elle vous coupe. Une conclusion sans ordre de grandeur est une conclusion apprise par cœur — c'est exactement ce que cette série travaille.
Comment démarrer
- Choisissez-en une, ouvrez-la, copiez l'invite.
- Collez-la dans une conversation toute neuve, ne dites rien, attendez sa première question.
- Attendez-vous à devoir chiffrer : combien de nanosecondes, de microsecondes, combien de fois plus lent. Dire que vous ne savez pas suffit, elle le note et continue.
Quatre commandes à lancer à tout moment
跳过passer tout de suite à la scène suivante换个说法réexpliquer ce point sous un autre angle直说吧donner la réponse complète, puis me la faire redire复盘sauter à la conclusion et sortir la fiche de bilan
Trois pièges
- Ne lisez pas le corrigé de la fin en premier — sa rubrique « erreurs de raisonnement courantes » contient la réponse à chaque question.
- Ne vous jetez pas sur le jargon. Dire « c'est un défaut de TLB » est facile ; dire de combien c'est moins cher qu'un défaut de page, c'est ça qui compte.
- Quand elle se met à vous complimenter, renvoyez-la à la règle « ne me complimente pas ». Guider n'est pas cajoler.
Pour vous faire les ordres de grandeur : les lectures aléatoires puis le premier octet. Pour le débogage en production : malloc, les blocages TCP, les changements de contexte. Pour le code concurrent : réordonnancement et faux partage.
Se connecter pour écrire une note.