


Comportement de la concurrence du langage GO sans tamponner les canaux: pourquoi y a-t-il deux possibilités d'exécution des résultats?
Apr 02, 2025 am 10:24 AMExplication détaillée du comportement simultané et des caractéristiques non bloquantes des canaux de langue GO
Cet article explore les résultats en cours d'exécution d'un morceau de code de langue GO lors de l'utilisation de canaux non frappés et explique le principe de programmation simultanée derrière. Le code utilise les caractéristiques des canaux de langue GO, mais montre différents comportements dans différentes situations, ce qui déclenche des discussions sur des questions telles que le blocage des canaux et le temps de démarrage de Coroutine.
Le code est le suivant:
package principal Importer "FMT" func main () { chanint: = make (chan int) Déférer Close (Chanint) aller func () { pour { res, ok: = <p> Ce code crée un canal non tamponné <code>chanInt</code> et démarre un Goroutine pour recevoir des données du canal et l'imprimer. Le goroutine principal envoie 1 et 10 au canal. Cependant, il existe deux possibilités d'exécution des résultats: imprimer "1 true" et "10 true", ou simplement imprimer "1 true". Cela soulève les questions suivantes:</p><ol><li> <strong>Il y a deux raisons pour la sortie du canal non frappé:</strong> </li></ol><p> Les caractéristiques des canaux non frappés sont: l'opération d'envoi est bloquée jusqu'à ce qu'un goroutine re?oive des données; L'opération de réception est également bloquée jusqu'à ce qu'un goroutine envoie des données. Le goroutine principal envoie 1 et 10 tour à tour. Les sous-goroutines sont re?us et imprimés. Si l'enfant Goroutine re?oit 1 assez rapidement, l'impression "1 vrai" est terminée avant que le Goroutine principal n'envoie 10, alors recevant 10 et imprimant "10 true". Mais si l'enfant goroutine re?oit 1 plus lent, l'enfant goroutine ne peut avoir le temps de recevoir et d'imprimer 1 avant que le goroutine principal n'envoie 10 et se termine. En effet, la goroutine principale se termine la fermeture du canal, et l'enfant goroutine re?oit un signal du canal à fermer ( <code>ok</code> est <code>false</code> ), arrêtant ainsi l'opération.</p><ol start="2"><li> <strong>Raisons pour aucune sortie avec des canaux tamponnés ( <code>chanInt := make(chan int, 2)</code> ):</strong> </li></ol><p> Après avoir changé le canal en un canal tamponné avec Capacité 2, l'envoi du fonctionnement du goroutine principal ne bloquera pas car il a suffisamment d'espace pour accueillir deux valeurs. Le goroutine principal se termine après avoir envoyé 1 et 10, tandis que l'enfant goroutine n'a peut-être pas commencé ou commencé à recevoir des données. En effet, la coroutine prend du temps à commencer. Si le goroutine principal se termine beaucoup plus rapidement que l'enfant Goroutine, l'enfant goroutine ne pourra pas recevoir de données du canal fermé, ce qui n'a pas donné de sortie.</p><p> Grace à l'analyse, nous comprenons que dans la programmation simultanée du langage GO, le temps de démarrage de la coroutine, les caractéristiques de blocage / non bloquant les canaux et le temps final principal du goroutine déterminent conjointement le résultat de sortie final. L'interaction de ces facteurs conduit à l'incertitude dans le résultat. Pour s'assurer que le sous-goroutine peut gérer toutes les données envoyées, un mécanisme d'attente doit être ajouté après l'envoi des données, tels que la synchronisation des Goroutines à l'aide de <code>WaitGroup</code> .</p>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Les dix principales plateformes de marché de crypto-monnaie et d'analyse de données faisant autorité en 2025 sont: 1. CoinmarketCap, fournissant des classements de capitalisation boursière complets et des données de marché de base; 2. Coingecko, fournissant une évaluation de projet multidimensionnelle avec des scores d'indépendance et de confiance; 3. TradingView, ayant les cartes K-Line les plus professionnelles et les outils d'analyse technique; 4. Marché de la binance, fournissant les données les plus directes en temps réel comme le plus grand échange; 5. Marché d'Ouyi, mettant en évidence des indicateurs dérivés clés tels que le volume de position et le taux de capital; 6. Glassnode, en se concentrant sur les données sur cha?ne telles que les adresses actives et les tendances des baleines géantes; 7. Messari, fournissant des rapports de recherche au niveau institutionnel et des données strictes strictes; 8. Cryptocompa

Les outils les plus appropriés pour interroger les marchés des stables en 2025 sont: 1. Binance, avec des données faisant autorité et des paires de trading riches, et des graphiques de tradingview intégrés adaptés à une analyse technique; 2. Ouyi, avec une interface claire et une forte intégration fonctionnelle, et prend en charge le fonctionnement unique des comptes Web3 et Defi; 3. CoinmarketCap, avec de nombreuses devises, et le secteur des stablescoin peut afficher le classement des valeurs de marché et les doyens; 4. Coingecko, avec des dimensions de données complètes, fournit des scores de confiance et des indicateurs d'activité communautaire, et a une position neutre; 5. Huobi (HTX), avec des conditions de marché stables et des opérations amicales, adaptées aux demandes d'actifs traditionnelles; 6. Gate.io, avec la collection la plus rapide de nouvelles pièces de monnaie et de niche, et est le premier choix pour les projets pour explorer le potentiel; 7. tra

Les stablecoins sont des crypto-monnaies avec une valeur ancrée par la monnaie ou les produits Fiat, con?us pour résoudre les fluctuations des prix telles que le bitcoin. Leur importance se reflète dans leur r?le d'outil de couverture, un moyen de négociation et un pont reliant la monnaie fiduciaire avec le monde cryptographique. 1. Les stablecoins fiat-collatéralisées sont pleinement soutenues par des monnaies fiduciaires telles que le dollar américain. L'avantage est que le mécanisme est simple et stable. L'inconvénient est qu'ils comptent sur la confiance des institutions centralisées. Ils représentent les projets, notamment USDT et USDC; 2. Les stablecoins collatéralisées en crypto-monnaie sont émises par des actifs cryptographiques traditionnels sur-collatéralisés. Les avantages sont la décentralisation et la transparence. L'inconvénient est qu'ils sont confrontés à des risques de liquidation. Le projet représentatif est DAI. 3. Les stablescoins algorithmiques reposent sur l'algorithme pour ajuster l'offre et la demande pour maintenir la stabilité des prix. Les avantages sont qu'ils n'ont pas besoin d'être garantis et ont une efficacité de capital élevée. L'inconvénient est que le mécanisme est complexe et que le risque est élevé. Il y a eu des cas d'effondrement du doyen. Ils font toujours l'objet d'une enquête.

L'utilisation réelle de Battle Royale dans le système de double monnaie ne s'est pas encore produite. Conclusion En ao?t 2023, l'étincelle du protocole de prêt écologique Makerdao a donné un rendement annualisé de Dai8% $. Ensuite, Sun Chi est entré en lots, investissant un total de 230 000 $ Steth, représentant plus de 15% des dép?ts de Spark, for?ant Makerdao à faire une proposition d'urgence pour réduire le taux d'intérêt à 5%. L'intention initiale de Makerdao était de "subventionner" le taux d'utilisation de $ dai, devenant presque le rendement en solo de Justin Sun. Juillet 2025, Ethe

Répertoire Qu'est-ce que Bitcoin? Comment fonctionne Bitcoin? Pourquoi Bitcoin n'est-il pas évolutif? Qu'est-ce que le BIP (Bitcoin Improvement Proposition)? Qu'est-ce que la mise à jour Bitcoin Taproot? Pay to Taproot (P2TR): Avantages de la racine de tapoot: Avantages de la confidentialité Sauve-Savation Conclusion de mise à niveau de la sécurité: ?BitCoin est la première monnaie numérique qui peut envoyer et recevoir des fonds sans utiliser de tiers. étant donné que Bitcoin est un logiciel, comme tout autre logiciel, il a besoin de mises à jour et de corrections de bogues. Bitcoin Taproot est une telle mise à jour qui introduit de nouvelles fonctionnalités de Bitcoin. La crypto-monnaie est maintenant un sujet br?lant. Les gens en parlent depuis des années, mais maintenant, les prix augmentant rapidement, tout le monde décide de se joindre et d'investir en eux. Message

Qu'est-ce que Treehouse (Tree)? Comment fonctionne Treehouse (Tree)? Treehouse Products Tethdor - Taux de citation décentralisé Gonuts Points Système Treehouse met en évidence les jetons d'arbre et l'économie des jetons Présentation du troisième trimestre de l'équipe de développement de la feuille de route 2025, des investisseurs et des partenaires Treehouse Team Investment Fund Résumé Partenaire, car DeFi continue d'étendre les marques financières, la demande de produits à revenu fixe est en croissance, et son r?le est similaire au r?le des liaisons dans les marques financières traditionnelles. Cependant, construire sur la blockchain

Table des matières Crypto Market Panoramic Nugget Popular Token Vinevine (114,79%, valeur marchande circulaire de 144 millions de dollars) Zorazora (16,46%, valeur marchande circulaire de 290 millions de dollars américains) NAVXNAVIPROTOCOL (10,36%, valeur marchande circulaire de la cha?ne éthereum de 25,7624 millions de dollars) et alpha interprètes le NFT sur les ventes de NFT sur la cha?ne éthereum dans la cha?ne de séquences de séquences) et l'alpha interprète la NFT sur la cha?ne éthereum dans la cha?ne de séquences de séquences) et les alpha et les interventions NFT sur la pénu Les cryptopunks classés en premier dans le réseau de prover décentralisé succinct ont lancé la fondation succincte, qui peut être le token tge

Le montant total de Bitcoin est de 21 millions, ce qui est une règle immuable déterminée par la conception d'algorithmes. 1. Grace au mécanisme de preuve de travail et à la règle d'émission de la moitié de tous les 210 000 blocs, l'émission de nouvelles pièces a diminué de fa?on exponentielle, et l'émission supplémentaire a finalement été arrêtée vers 2140. 2. Le montant total de 21 millions est dérivé de la résumé de la séquence à échelle égale. La récompense initiale est de 50 Bitcoins. Après chaque réduction de moitié, la somme de la somme converge à 21 millions. Il est solidifié par le code et ne peut pas être falsifié. 3. Depuis sa naissance en 2009, les quatre événements de réduction de moitié ont considérablement entra?né des prix, vérifié l'efficacité du mécanisme de rareté et constitué un consensus mondial. 4. Le total fixe donne une anti-inflation bitcoin et une métallicité jaune numérique, sa valeur marchande dépassant 2,1 billions de dollars en 2025, devenant le cinquième plus grand capital au monde
