Go Academy · पाठ

टाइमर और टिकर

कार्य निर्धारित करें और दोहराएँ

पाठ 3, कुल 4 में से13 चरण

टाइमर और टिकर, CoddyKit पर Go Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Go Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Sleep से विराम

सबसे सरल समय-निर्धारण उपकरण time.Sleep(d) है, जो वर्तमान गोरूटीन को कुछ अवधि के लिए रोकता है।

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println("start")
    time.Sleep(10 * time.Millisecond)
    fmt.Println("done")
}

टाइमर क्या है

time.Timer देरी के बाद एक बार सक्रिय होता है। समाप्त होने पर यह अपने C चैनल पर वर्तमान समय भेजता है।

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.NewTimer(10 * time.Millisecond)
    <-t.C
    fmt.Println("timer fired")
}

time.After की आसान विधि

time.After(d) ऐसा चैनल लौटाता है जो देरी के बाद एक मान देता है। यह किसी चर के बिना एक बार चलने वाला सुविधाजनक टाइमर है।

package main

import (
    "fmt"
    "time"
)

func main() {
    <-time.After(10 * time.Millisecond)
    fmt.Println("elapsed")
}

टाइमर रोकना

timer.Stop() टाइमर के सक्रिय होने से पहले उसे रद्द करता है। समय रहते टाइमर रुक जाने पर यह true लौटाता है।

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.NewTimer(time.Hour)
    stopped := t.Stop()
    fmt.Println("stopped:", stopped)
}

टिकर क्या है

time.Ticker एक निश्चित अंतराल पर बार-बार सक्रिय होता है और हर बार अपने C चैनल पर संदेश भेजता है।

इसे पोलिंग या एनीमेशन फ़्रेम जैसे आवधिक कार्यों के लिए उपयोग करें।

package main

import (
    "fmt"
    "time"
)

func main() {
    ticker := time.NewTicker(5 * time.Millisecond)
    <-ticker.C
    fmt.Println("tick")
    ticker.Stop()
}

टिक गिनना

हर अंतराल पर कार्य करने के लिए टिकर चैनल पर लूप चलाएँ, फिर पर्याप्त टिक हो जाने पर उसे रोक दें।

package main

import (
    "fmt"
    "time"
)

func main() {
    ticker := time.NewTicker(5 * time.Millisecond)
    for i := 1; i <= 3; i++ {
        <-ticker.C
        fmt.Println("tick", i)
    }
    ticker.Stop()
}

टिकर को हमेशा रोकें

टाइमर के विपरीत, टिकर तब तक चलता रहता है जब तक आप Stop() नहीं बुलाते। उसे रोकना भूलने पर संसाधन व्यर्थ होते रहते हैं।

package main

import (
    "fmt"
    "time"
)

func main() {
    ticker := time.NewTicker(5 * time.Millisecond)
    defer ticker.Stop()
    <-ticker.C
    fmt.Println("one tick, will stop on return")
}

time.Tick की सुविधा

time.Tick(d) सीधे एक टिकर चैनल लौटाता है। यह सरल है, लेकिन इसे रोका नहीं जा सकता, इसलिए इसका उपयोग केवल पूरे प्रोग्राम की अवधि के लिए करें।

package main

import (
    "fmt"
    "time"
)

func main() {
    c := time.Tick(5 * time.Millisecond)
    <-c
    fmt.Println("ticked")
}

चयन से समय-सीमा

समय-सीमा लागू करने के लिए किसी कार्य चैनल को time.After के साथ select में मिलाएँ।

package main

import (
    "fmt"
    "time"
)

func main() {
    done := make(chan bool)
    go func() { done <- true }()
    select {
    case <-done:
        fmt.Println("work finished")
    case <-time.After(time.Second):
        fmt.Println("timed out")
    }
}

AfterFunc कॉलबैक चलाता है

time.AfterFunc(d, f) देरी के बाद फ़ंक्शन f को अपनी गोरूटीन में चलाता है, इसलिए आपको किसी चैनल को पढ़ने की आवश्यकता नहीं होती।

package main

import (
    "fmt"
    "time"
)

func main() {
    done := make(chan bool)
    time.AfterFunc(10*time.Millisecond, func() {
        fmt.Println("callback ran")
        done <- true
    })
    <-done
}

टाइमर बनाम टिकर

दोहराव के आधार पर चुनें:

  • टाइमर: देरी के बाद एक बार सक्रिय होता है।
  • टिकर: एक अंतराल पर बार-बार सक्रिय होता है।
  • कार्य पूरा होने पर संसाधन मुक्त करने के लिए दोनों को रोक दें।
package main

import (
    "fmt"
    "time"
)

func main() {
    <-time.After(5 * time.Millisecond)
    fmt.Println("one-shot complete")
}

त्वरित जाँच

कौन-सा प्रकार एक निश्चित अंतराल पर बार-बार सक्रिय होता है?

पुनरावलोकन: टाइमर और टिकर

आपने कार्यों का समय-निर्धारण करना सीखा:

  • Sleep विराम देता है; Timer और time.After एक बार सक्रिय होते हैं।
  • Ticker और time.Tick बार-बार सक्रिय होते हैं।
  • संसाधनों की सफ़ाई के लिए Stop() का उपयोग करें; समय-सीमाओं के लिए इसे select के साथ मिलाएँ।
package main

import (
    "fmt"
    "time"
)

func main() {
    ticker := time.NewTicker(5 * time.Millisecond)
    defer ticker.Stop()
    for i := 0; i < 2; i++ {
        <-ticker.C
        fmt.Println("beat")
    }
}
शुरुआत निःशुल्क

एआई शिक्षक के साथ Go सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
51
पाठ
203

अक्सर पूछे जाने वाले प्रश्न

क्या “टाइमर और टिकर” पाठ निःशुल्क है?

हाँ — Go Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “टाइमर और टिकर” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“टाइमर और टिकर” में मैं क्या सीखूँगा?

कार्य निर्धारित करें और दोहराएँ आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Go Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Go Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Go Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“टाइमर और टिकर” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Go Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Go Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. समय और अवधि
  2. फ़ॉर्मैटिंग और पार्सिंग
  3. टाइमर और टिकर
  4. समय क्षेत्र
← Go Academy पर वापस जाएँ