Jadual Kandungan
Kandungan soalan
Penyelesaian
Rumah pembangunan bahagian belakang Golang Golang: Mengapa saya masih menerima mesej daripada saluran selepas pemasa dihentikan

Golang: Mengapa saya masih menerima mesej daripada saluran selepas pemasa dihentikan

Feb 09, 2024 pm 11:36 PM
pembangunan golang

Golang: Mengapa saya masih menerima mesej daripada saluran selepas pemasa dihentikan

Golang: Mengapa saya masih menerima mesej daripada saluran selepas pemasa dihentikan? Ini adalah masalah yang sering dihadapi oleh ramai pembangun Golang apabila menggunakan pemasa. Pemasa ialah alat yang biasa digunakan di Golang, yang digunakan untuk melakukan operasi tertentu selepas tempoh masa tertentu. Walau bagaimanapun, kadangkala walaupun kami menghentikan pemasa secara eksplisit, kami masih menerima mesej daripada saluran tersebut. Apakah sebenarnya yang menyebabkan perkara ini berlaku? Dalam artikel ini, editor PHP Zimo akan menjawab soalan ini secara terperinci dan menyediakan penyelesaian yang sepadan.

Kandungan soalan

Kod pertama (pengecualian):

var ti time.timer
func init() {
    ti = *time.newtimer(3 * time.second)
}
func main() {
    ti.stop()
    t := <-ti.c
    fmt.println("end", t) 
}
Salin selepas log masuk

Kod kedua (biasa):

var ti *time.Timer
func init() {
    ti = time.NewTimer(3 * time.Second)
}
func main() {
    ti.Stop()
    t := <-ti.C
    fmt.Println("End", t) // deadlock!
}
Salin selepas log masuk

Saya tidak faham mengapa kod pertama masih mendapat mesej daripada saluran pemasa selepas berhenti. Saya tidak fikir ini adalah perkara biasa kerana ia seolah-olah menjadikan pemasa tidak berguna.

Sekeping kod kedua adalah normal, perbezaannya ialah "var ti time.timer" dan "var ti *time.timer", satu ialah nilai dan satu lagi penunjuk.

Saya tidak biasa dengan penunjuk, boleh sesiapa membantu saya?

Terima kasih!

Penyelesaian

Anda membatalkan rujukan penanda dan nilainya disalin.

Berikut ialah cara untuk berhenti:

func (t *Ticker) Stop() {
    stopTimer(&t.r)
}
Salin selepas log masuk

Apabila anda menyalin pemasa, &t.r tuding ke tempat lain. Itulah sebabnya pemasa anda tidak akan berhenti.

Jadi anda harus menggunakan *time.ticker 而不是 time.ticker.

Atas ialah kandungan terperinci Golang: Mengapa saya masih menerima mesej daripada saluran selepas pemasa dihentikan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bangunkan aplikasi desktop yang berkuasa dengan Golang Bangunkan aplikasi desktop yang berkuasa dengan Golang Mar 19, 2024 pm 05:45 PM

Gunakan Golang untuk membangunkan aplikasi desktop yang berkuasa Dengan pembangunan Internet yang berterusan, orang ramai menjadi tidak dapat dipisahkan daripada pelbagai jenis aplikasi desktop. Bagi pembangun, adalah penting untuk menggunakan bahasa pengaturcaraan yang cekap untuk membangunkan aplikasi desktop yang berkuasa. Artikel ini akan memperkenalkan cara menggunakan Golang (bahasa Go) untuk membangunkan aplikasi desktop yang berkuasa dan menyediakan beberapa contoh kod khusus. Golang ialah bahasa pengaturcaraan sumber terbuka yang dibangunkan oleh Google Ia mempunyai ciri-ciri kesederhanaan, kecekapan, konkurensi yang kuat, dsb., dan sangat sesuai untuk

Cabaran keselamatan dalam pembangunan Golang: Bagaimana untuk mengelak daripada dieksploitasi untuk penciptaan virus? Cabaran keselamatan dalam pembangunan Golang: Bagaimana untuk mengelak daripada dieksploitasi untuk penciptaan virus? Mar 19, 2024 pm 12:39 PM

Cabaran keselamatan dalam pembangunan Golang: Bagaimana untuk mengelak daripada dieksploitasi untuk penciptaan virus? Dengan aplikasi Golang yang luas dalam bidang pengaturcaraan, semakin ramai pembangun memilih untuk menggunakan Golang untuk membangunkan pelbagai jenis aplikasi. Walau bagaimanapun, seperti bahasa pengaturcaraan lain, terdapat cabaran keselamatan dalam pembangunan Golang. Khususnya, kuasa dan fleksibiliti Golang juga menjadikannya alat penciptaan virus yang berpotensi. Artikel ini akan membincangkan isu keselamatan dalam pembangunan Golang dan menyediakan beberapa kaedah untuk mengelakkan G

Langkah dan petua untuk pengaturcaraan dengan Golang pada Mac Langkah dan petua untuk pengaturcaraan dengan Golang pada Mac Mar 03, 2024 am 08:30 AM

Tajuk: Langkah dan teknik untuk menggunakan pengaturcaraan Golang pada Mac Dalam bidang pembangunan perisian semasa, Golang (juga dikenali sebagai Go), sebagai bahasa pengaturcaraan yang cekap, ringkas dan sangat bersesuaian, telah menarik perhatian lebih ramai pembangun . Apabila memprogramkan Golang pada platform Mac, anda boleh menggunakan beberapa alat dan teknik untuk meningkatkan kecekapan pembangunan. Artikel ini akan memperkenalkan langkah dan teknik menggunakan pengaturcaraan Golang pada Mac dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan dengan lebih baik. Langkah 1: Pasang Gol

Penyelidikan tentang kesan dan peranan Golang terhadap pembangunan rantaian blok Penyelidikan tentang kesan dan peranan Golang terhadap pembangunan rantaian blok Feb 26, 2024 pm 04:24 PM

Golang (pendek kata bahasa Go) sebagai bahasa pengaturcaraan telah muncul secara beransur-ansur dalam bidang blockchain sejak beberapa tahun kebelakangan ini, keupayaan pemprosesan serentak yang cekap dan ciri sintaks yang ringkas menjadikannya pilihan yang digemari dalam pembangunan blok. Artikel ini akan meneroka bagaimana Golang membantu pembangunan blockchain dan menunjukkan keunggulannya dalam aplikasi blockchain melalui contoh kod tertentu. 1. Kelebihan Golang dalam bidang blockchain: Keupayaan pemprosesan serentak yang cekap: Nod dalam sistem blockchain perlu memproses sejumlah besar transaksi dan data pada masa yang sama, dan Gola

Apakah bahasa pengaturcaraan yang biasa digunakan oleh pembangun Golang? Apakah bahasa pengaturcaraan yang biasa digunakan oleh pembangun Golang? Mar 18, 2024 pm 09:06 PM

Golang ialah bahasa pengaturcaraan sumber terbuka yang dibangunkan oleh Google dan digunakan secara meluas dalam pembangunan perkhidmatan bahagian belakang, pengkomputeran awan, pengaturcaraan rangkaian dan bidang lain. Sebagai bahasa yang ditaip secara statik, Golang mempunyai model konkurensi yang cekap dan perpustakaan standard yang berkuasa, jadi ia digemari oleh pembangun. Walau bagaimanapun, dalam pembangunan sebenar, pemaju Golang biasanya perlu menggabungkan bahasa pengaturcaraan lain untuk pembangunan projek untuk memenuhi keperluan senario yang berbeza. PythonPython ialah bahasa pengaturcaraan berorientasikan objek yang ringkas, jelas dan mudah dipelajari.

Rangka kerja kit Go membantu meningkatkan prestasi API Golang Rangka kerja kit Go membantu meningkatkan prestasi API Golang May 07, 2024 pm 03:24 PM

Gokit ialah rangka kerja mikro perkhidmatan Golang yang meningkatkan prestasi API melalui ciri yang dioptimumkan, berskala, boleh diselenggara dan mesra ujian. Ia menyediakan pelbagai alat dan corak yang membolehkan pengguna membina API yang berprestasi dan boleh diselenggara dengan cepat. Dalam pengeluaran sebenar, ia digunakan secara meluas dalam pembinaan API platform besar seperti Netflix, Spotify dan Uber, mengendalikan permintaan besar-besaran.

Menyelam secara mendalam tentang kesilapan Golang: analisis sebab dan strategi penyelesaian Menyelam secara mendalam tentang kesilapan Golang: analisis sebab dan strategi penyelesaian Mar 20, 2024 am 09:21 AM

Sebagai bahasa pengaturcaraan yang pantas dan cekap, bahasa Golang digemari oleh semakin ramai pembangun. Namun, dalam pembangunan harian, kita pasti akan menghadapi pelbagai kesilapan. Cara menganalisis dengan betul punca kesilapan dan mencari strategi penyelesaian adalah kemahiran penting yang perlu difahami dan dikuasai oleh setiap pembangun Golang secara mendalam. Kegagalan penegasan jenis analisis ralat Di Golang, penegasan jenis adalah operasi biasa, tetapi kadangkala jika jenis tidak sepadan, panik akan berlaku. Berikut ialah contoh mudah: varxinter

Perkongsian teknik praktikal untuk menggantikan ruang di Golang Perkongsian teknik praktikal untuk menggantikan ruang di Golang Mar 13, 2024 am 09:15 AM

Tajuk: Perkongsian teknik praktikal untuk menggantikan ruang di Golang Dengan populariti dan perkembangan Internet, reka bentuk dan pembangunan program menjadi semakin penting. Dalam proses pengaturcaraan, pemprosesan data adalah bahagian yang sangat kritikal. Semasa memproses data teks, anda sering menghadapi situasi di mana anda perlu menggantikan ruang Artikel ini akan berkongsi cara melaksanakan teknologi menggantikan ruang di Golang dan memberikan contoh kod tertentu. Mengapa saya perlu menggantikan ruang? Ruang ialah salah satu aksara khas biasa dalam data teks Kadangkala kita perlu menggantikan ruang dengan aksara lain atau mengalih keluar ruang.

See all articles