Go

Primitif Sinkronisasi

sync.Mutex, RWMutex, Once, Pool, Map, Cond, operasi atomik

22 pertanyaan wawancaraยท
Mid-Level
1

Apa itu sync.Mutex di Go?

Jawaban

Sebuah sync.Mutex (mutual exclusion lock) adalah primitif sinkronisasi yang memastikan hanya satu goroutine yang dapat mengakses critical section pada satu waktu. Memanggil Lock akan memblokir hingga mutex tersedia, dan Unlock melepaskannya untuk goroutine lain. Gunakan untuk melindungi akses bersamaan ke data bersama.

2

Apa yang terjadi jika kita lupa memanggil Unlock setelah Lock pada sync.Mutex?

Jawaban

Lupa Unlock menciptakan potensi deadlock karena goroutine lain akan menunggu tanpa batas untuk memperoleh mutex. Praktik terbaiknya adalah menggunakan defer untuk memastikan Unlock akan dipanggil bahkan saat terjadi panic. Selalu pasangkan Lock dan Unlock dalam scope yang sama untuk menghindari kebocoran lock.

3

Apa perbedaan utama antara sync.Mutex dan sync.RWMutex?

Jawaban

sync.RWMutex memungkinkan banyak pembacaan bersamaan melalui RLock tetapi hanya satu penulisan eksklusif melalui Lock. Ini meningkatkan performa untuk skenario yang banyak membaca karena para pembaca tidak saling memblokir. Gunakan RWMutex ketika pembacaan sering dan penulisan jarang.

4

Mengapa menggunakan defer dengan Unlock pada sync.Mutex?

5

Kapan sebaiknya memilih sync.RWMutex dibanding sync.Mutex?

+19 pertanyaan wawancara

Kuasai Go untuk wawancara berikutnya

Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.

Mulai gratis