Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bincangkan penggunaan fungsi Tidur di Golang

Bincangkan penggunaan fungsi Tidur di Golang

PHPz
PHPzasal
2023-04-05 13:48:233820semak imbas

Bahasa Go (Golang) ialah bahasa pengaturcaraan sumber terbuka yang dibangunkan oleh Google. Go mempunyai sokongan semula jadi untuk pengaturcaraan serentak dan menyediakan beberapa fungsi dan alatan terbina dalam untuk memudahkan pembangun melaksanakan pengaturcaraan serentak. Antaranya, fungsi Tidur disediakan dalam pakej masa Artikel ini akan meneroka penggunaan fungsi Tidur di Golang.

1. Gambaran Keseluruhan fungsi Tidur

Fungsi Tidur digunakan untuk meletakkan goroutine semasa ke dalam keadaan tidur dan menangguhkan pelaksanaan untuk satu tempoh masa. Prototaip fungsi adalah seperti berikut:

func Sleep(d Duration)

di mana Tempoh ialah jenis yang mewakili tempoh masa Unit masa minimum yang disokong ialah nanosaat (ns) dan masa maksimum adalah lebih kurang 290 tahun. Dalam program ini, anda boleh menggunakan pemalar yang disediakan dalam pakej masa untuk mewakili tempoh masa yang berbeza, seperti:

const (
    Nanosecond  Duration = 1
    Microsecond          = 1000 * Nanosecond
    Millisecond          = 1000 * Microsecond
    Second               = 1000 * Millisecond
    Minute               = 60 * Second
    Hour                 = 60 * Minute
)

2. Contoh penggunaan fungsi Tidur

Di bawah kami akan menunjukkan melalui beberapa contoh Penggunaan fungsi Tidur.

  1. Penggunaan asas
package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println("start")
    time.Sleep(1 * time.Second)
    fmt.Println("end")
}

Selepas melaksanakan program, output adalah seperti berikut:

start
(end 1秒后输出)
end

Selepas program bermula, ia akan tidur selama 1 saat dan kemudian keluarkan "tamat".

  1. Kawalan masa yang tepat

Dalam kes pelaksanaan serentak berbilang goroutine, untuk memastikan ketepatan program, adalah perlu untuk memastikan pelaksanaan setiap goroutine Masa adalah setepat mungkin. Contoh berikut menunjukkan cara menggunakan fungsi Tidur untuk mengawal masa dengan tepat.

package main

import (
    "fmt"
    "time"
)

func main() {
    for i := 0; i < 3; i++ {
        go func() {
            fmt.Println("start")
            time.Sleep(1 * time.Second)
            fmt.Println("end")
        }()
    }
    time.Sleep(2 * time.Second)
}

Selepas melaksanakan program, output adalah seperti berikut:

start
start
start
(end 1秒后输出)
end
end
end

Dalam kod di atas, kami menggunakan gelung for untuk mencipta 3 coroutine untuk pelaksanaan serentak setiap coroutine Masa ialah 1 saat. Masa tidur ialah 2 saat, memastikan setiap coroutine boleh dilaksanakan dan dikeluarkan seperti yang diharapkan.

  1. Cegah operasi berulang dalam masa yang singkat

Dalam proses pengaturcaraan sebenar, kadangkala perlu untuk mengelakkan operasi berulang dalam masa yang singkat. Sebagai contoh, selepas mengklik butang, anda perlu menunggu seketika sebelum mengklik semula. Contoh berikut menunjukkan cara menggunakan fungsi Tidur untuk melaksanakan fungsi ini.

package main

import (
    "fmt"
    "time"
)

func main() {
    click()
    time.Sleep(2 * time.Second)
    click()
}

func click() {
    now := time.Now()
    fmt.Println(now.Format("2006-01-02 15:04:05"))
    time.Sleep(1 * time.Second)
}

Selepas melaksanakan program, output adalah seperti berikut:

(start time)
2022-06-15 20:35:43
(end time)
2022-06-15 20:35:44
(start time)
2022-06-15 20:35:46
(end time)
2022-06-15 20:35:47

Dalam kod di atas, kami mentakrifkan fungsi klik, yang digunakan untuk merekodkan masa semasa dan tidur selama 1 saat. Dalam fungsi utama, kita mula-mula memanggil fungsi klik sekali, dan kemudian tunggu 2 saat untuk memanggilnya semula. Memandangkan kami menunggu 2 saat sebelum panggilan kedua, panggilan kedua akan dilaksanakan 1 saat selepas panggilan pertama.

3. Kesimpulan

Artikel ini memperkenalkan penggunaan dan contoh fungsi Tidur di Golang.

Menggunakan fungsi Tidur boleh mengawal masa pelaksanaan program serentak dengan berkesan dan memastikan ketepatan dan kestabilan program.

Perhatian khusus harus diberikan kepada fakta bahawa apabila menggunakan fungsi Tidur, cuba elakkan menggunakan masa tidur yang lama. Masa tidur yang terlalu lama akan menyekat pelaksanaan coroutine dan menjejaskan prestasi program.

Atas ialah kandungan terperinci Bincangkan penggunaan fungsi Tidur di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn