Rumah >pembangunan bahagian belakang >Golang >Adakah Saluran Penampan Menjamin Susunan Data?
Adakah Saluran Penimbalan Mengekalkan Pesanan?
Dalam Go, saluran penimbal tidak mengekalkan sebarang jaminan pesanan. Ini bermakna data boleh dibaca daripada saluran dalam susunan yang berbeza daripada yang ditulis.
Walau bagaimanapun, jika terdapat hanya satu pengeluar (goroutine yang menulis kepada saluran) dan satu pengguna (goroutine yang membaca daripada saluran), susunan data akan dikekalkan dalam kedua-dua saluran buffer dan tidak buffer. Ini kerana pengeluar akan sentiasa menulis ke saluran dalam susunan yang sama, dan pengguna akan sentiasa membaca daripada saluran dalam susunan yang sama.
Turutan operasi baca/tulis digambarkan dalam The Nature Of Channels Dalam Go oleh William Kennedy. Ia menunjukkan bagaimana susunan baca/tulis dihormati dalam kedua-dua saluran penimbal dan tidak penimbal.
Untuk saluran tidak penimbal, susunan data dijamin kerana penghantar menyekat sehingga penerima menerima nilainya.
Untuk saluran penimbal, pengirim hanya menyekat sehingga nilai telah disalin ke penimbal. Jika penimbal penuh, pengirim akan menyekat sehingga beberapa penerima telah mendapatkan nilai. Ini bermakna susunan data tidak dijamin, tetapi penghantaran dijamin selagi penimbal tidak penuh.
William Kennedy menerangkan lagi jaminan aspek penghantaran dalam The Behavior Of Channels. Beliau menggariskan tiga pilihan saluran: unbuffered, buffered >1 dan buffered =1.
Atas ialah kandungan terperinci Adakah Saluran Penampan Menjamin Susunan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!