Rumah > Artikel > pembangunan bahagian belakang > Bincangkan penggunaan fungsi Tidur di Golang
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.
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".
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.
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!