


Golang: Warum erhalte ich immer noch Nachrichten vom Kanal, nachdem der Timer angehalten wurde?
Golang: Warum erhalte ich immer noch Nachrichten vom Kanal, nachdem der Timer angehalten wurde? Dies ist ein Problem, auf das viele Golang-Entwickler häufig stoßen, wenn sie Timer verwenden. Timer ist ein in Golang häufig verwendetes Werkzeug, mit dem nach einer bestimmten Zeit bestimmte Vorgänge ausgeführt werden. Manchmal erhalten wir jedoch auch dann Nachrichten vom Kanal, wenn wir den Timer explizit stoppen. Was genau verursacht dies? In diesem Artikel wird der PHP-Editor Zimo diese Frage ausführlich beantworten und entsprechende Lösungen bereitstellen.
Frageninhalt
Erster Code (Ausnahme):
var ti time.timer func init() { ti = *time.newtimer(3 * time.second) } func main() { ti.stop() t := <-ti.c fmt.println("end", t) }
Zweiter Code (normal):
var ti *time.Timer func init() { ti = time.NewTimer(3 * time.Second) } func main() { ti.Stop() t := <-ti.C fmt.Println("End", t) // deadlock! }
Ich verstehe nicht, warum der erste Code nach dem Stoppen immer noch Nachrichten vom Timer-Kanal erhält. Ich glaube nicht, dass das normal ist, da es den Timer scheinbar unbrauchbar macht.
Der zweite Code ist normal, der Unterschied ist „var ti time.timer“ und „var ti *time.timer“, einer ist ein Wert und der andere ist ein Zeiger.
Ich kenne mich mit Hinweisen nicht aus, kann mir jemand helfen?
Danke!
Problemumgehung
Sie dereferenzieren den Ticker und sein Wert wird kopiert.
So stoppen Sie:
func (t *Ticker) Stop() { stopTimer(&t.r) }
Wenn Sie einen Timer kopieren, &t.r
zeigt er an eine andere Stelle. Deshalb stoppt Ihr Timer nicht.
Du solltest also *time.ticker
而不是 time.ticker
verwenden.
Das obige ist der detaillierte Inhalt vonGolang: Warum erhalte ich immer noch Nachrichten vom Kanal, nachdem der Timer angehalten wurde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Verwenden Sie Golang, um leistungsstarke Desktop-Anwendungen zu entwickeln. Mit der kontinuierlichen Entwicklung des Internets sind Menschen untrennbar mit verschiedenen Arten von Desktop-Anwendungen verbunden. Für Entwickler ist es von entscheidender Bedeutung, effiziente Programmiersprachen zu verwenden, um leistungsstarke Desktop-Anwendungen zu entwickeln. In diesem Artikel wird die Verwendung von Golang (Go-Sprache) zur Entwicklung leistungsstarker Desktop-Anwendungen vorgestellt und einige spezifische Codebeispiele bereitgestellt. Golang ist eine von Google entwickelte Open-Source-Programmiersprache. Sie zeichnet sich durch Einfachheit, Effizienz, starke Parallelität usw. aus und eignet sich sehr gut für

Sicherheitsherausforderungen bei der Golang-Entwicklung: Wie kann verhindert werden, dass es zur Virenentstehung ausgenutzt wird? Aufgrund der breiten Anwendung von Golang im Bereich der Programmierung entscheiden sich immer mehr Entwickler für die Verwendung von Golang zur Entwicklung verschiedener Arten von Anwendungen. Allerdings gibt es wie bei anderen Programmiersprachen auch bei der Golang-Entwicklung Sicherheitsherausforderungen. Insbesondere seine Leistungsfähigkeit und Flexibilität machen Golang auch zu einem potenziellen Werkzeug zur Virenerstellung. Dieser Artikel befasst sich mit Sicherheitsproblemen bei der Golang-Entwicklung und bietet einige Methoden zur Vermeidung von G

Titel: Schritte und Techniken zur Verwendung der Golang-Programmierung auf dem Mac Im aktuellen Bereich der Softwareentwicklung hat Golang (auch bekannt als Go) als effiziente, prägnante und hochgradig parallele Programmiersprache die Aufmerksamkeit immer mehr Entwickler auf sich gezogen . Beim Programmieren von Golang auf der Mac-Plattform können Sie einige Tools und Techniken verwenden, um die Entwicklungseffizienz zu verbessern. In diesem Artikel werden die Schritte und Techniken der Verwendung der Golang-Programmierung auf dem Mac vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern das Verständnis und die Anwendung zu erleichtern. Schritt 1: Gol installieren

Golang (kurz Go-Sprache) hat sich in den letzten Jahren im Blockchain-Bereich nach und nach durchgesetzt. Seine effizienten Fähigkeiten zur gleichzeitigen Verarbeitung und seine prägnanten Syntaxfunktionen machen es zu einer bevorzugten Wahl in der Blockchain-Entwicklung. In diesem Artikel wird untersucht, wie Golang die Entwicklung der Blockchain unterstützt und seine Überlegenheit in Blockchain-Anwendungen anhand spezifischer Codebeispiele demonstriert. 1. Vorteile von Golang im Blockchain-Bereich: Effiziente gleichzeitige Verarbeitungsfunktionen: Knoten im Blockchain-System müssen eine große Menge an Transaktionen und Daten gleichzeitig verarbeiten, und Gola

Golang ist eine von Google entwickelte Open-Source-Programmiersprache, die häufig in der Back-End-Dienstentwicklung, Cloud Computing, Netzwerkprogrammierung und anderen Bereichen eingesetzt wird. Als statisch typisierte Sprache verfügt Golang über ein effizientes Parallelitätsmodell und eine leistungsstarke Standardbibliothek und wird daher von Entwicklern bevorzugt. In der tatsächlichen Entwicklung müssen Golang-Entwickler jedoch normalerweise andere Programmiersprachen für die Projektentwicklung kombinieren, um den Anforderungen verschiedener Szenarien gerecht zu werden. PythonPython ist eine objektorientierte Programmiersprache, die prägnant, klar und leicht zu erlernen ist.

Gokit ist ein Golang-Microservice-Framework, das die API-Leistung durch optimierte, skalierbare, wartbare und testfreundliche Funktionen verbessert. Es bietet eine Reihe von Tools und Mustern, die es Benutzern ermöglichen, schnell leistungsstarke und wartbare APIs zu erstellen. In der tatsächlichen Produktion wird es häufig beim API-Aufbau großer Plattformen wie Netflix, Spotify und Uber eingesetzt und verarbeitet massive Anfragen.

Titel: Austausch praktischer Techniken zum Ersetzen von Leerzeichen in Golang Mit der Popularität und Entwicklung des Internets sind Programmdesign und -entwicklung immer wichtiger geworden. Im Programmierprozess ist die Datenverarbeitung ein sehr kritischer Teil. Bei der Verarbeitung von Textdaten kommt es häufig vor, dass Leerzeichen ersetzt werden müssen. In diesem Artikel erfahren Sie, wie Sie die Technologie zum Ersetzen von Leerzeichen in Golang implementieren und stellen spezifische Codebeispiele bereit. Warum muss ich Leerzeichen ersetzen? Leerzeichen gehören zu den häufigsten Sonderzeichen in Textdaten. Manchmal müssen wir Leerzeichen durch andere Zeichen ersetzen oder Leerzeichen entfernen.

Vor- und Nachteile der Verwendung von Golang zur Entwicklung mobiler Spiele Mit der Beliebtheit mobiler Geräte und der kontinuierlichen Verbesserung ihrer Leistung erfreut sich der Markt mobiler Spiele immer größerer Beliebtheit und lockt immer mehr Entwickler an. Bei der Auswahl einer Entwicklungssprache zieht Golang als schnelle, effiziente und leicht zu erlernende Sprache die Aufmerksamkeit vieler Entwickler auf sich. In diesem Artikel werden die Vor- und Nachteile der Verwendung von Golang zur Entwicklung mobiler Spiele erläutert und anhand spezifischer Codebeispiele veranschaulicht. Vorteile: Stark plattformübergreifend: Golang kann in Binärdateien für verschiedene Plattformen kompiliert werden
