#Goroutine
8 artikel
Mengenal Dan Implementasi Sync Atomic Pada Golang
Pengenalan sync.Atomic
Untuk operasi atomik pada variabel pada golang, paket sync/atomic
menawarkan metode tingkat rendah tertentu. Di Go, metode ini memungkinkan beberapa goroutine
untuk mengubah variabel bersama dengan aman tanpa menggunakan kunci atau sinkronisasi eksplisit lainnya. Fungsi seperti AddInt64
, AddUint32
, CompareAndSwapInt32
, dll digunakan untuk melakukan aritmatika dasar pada berbagai jenis variabel dapat ditemukan dalam paket atom
. Metode AddInt64
misalnya, menjamin bahwa modifikasi yang dibuat oleh goroutine
lain akan terlihat saat menambahkan nilai tertentu ke variabel int64
dengan gaya atomik.
Mengenal Sync Cond Pada Golang
Pengenalan sync.Cond
sync.Cond
adalah proses locking yang digunakan dengan kondisi tertentu. sync.Cond
dalam paket sinkronisasi Golang mengimplementasikan variabel kondisional yang dapat digunakan dalam skenario dimana banyak reader
sedang menunggu sumber daya berbarengan. Cond pooling point: beberapa goroutine menunggu, 1 event notifikasi goroutine terjadi. Setiap Cond diasosiasikan dengan Lock
**(sync. Mutex atau sync.RWMutex) yang harus ditambahkan saat memodifikasi kondisi atau memanggil metode wait()
, untuk melindungi kondisi.
Mengenal Sync Once Pada Golang
Pengenalan sync.Once
Fitur ini pada Golang bisa kita gunakan untuk memasikan sebuah function dilakukan eksekusi hanya dalam satu kali saja. Kadang kalau kita sudah memiliki banyak goroutine yang sedang mengakses, maka dengan sync.Once
ini bisa dipastikan hanya goroutine yang memiliki akses pertama yang bisa mengeksekusi function tersebut. Maka jika ada goroutine lain yang sedang berjalan tidak akan melakukan eksekusi dan menghiraukan fungsi tersebu.
Mengenal Sync Map Pada Golang
Pengenalan sync.Map
sync.Map
ini sebenarnya mirip sekali dengan Generic Golangnya map
biasa, namun yang membedakan map
ini aman untuk digunakan saat concurrent goroutine.
Mengenal Sync Pool Pada Golang
Pengenalan sync.Pool
sync.Pool
sering kita dengar saat implementasi design patter yaitu bernama Object Pool Pattern. Pool adalah sekumpulan objek sementara yang dapat disimpan dan diambil secara individual. Sebuah Pool aman untuk digunakan oleh beberapa goroutine secara bersamaan.
Mengenal WaitGroup Pada Golang
Perkenalan
Waitgroup adalah fitur dari Golang yang digunakan untuk menunggu sebuah proses yang dilakukan oleh beberapa goroutine. Hal ini dilakukan dikarenakan kita perlu melakukan proses secara bersamaan tetapi ketika akan melanjutkan proses selanjutnya kita membutuhkan data dari hasil sebelumnya akhirnya kita harus menunggu terlebih dahulu dari proses sebelumnya untuk mendapatkan datanya.
Penggunaan Channel Select Range Timeout
Adanya channel sangat membantu kita untuk mengelola goroutine yang sedang berjalan pada program kita. Ada kalanya kita juga perlu mengelola goroutine banyak dan dibutuhkan banyak channel juga. Maka, disinilah kegunaan select
. select
memudahkan kita mengontrol komunikasi data lewat channel. Cara penggunannya sama seperti seleksi kondisi switch
.
Pengenalan Channel Pada Golang
Channel adalah penghubung goroutine yang dari satu ke yang lainnya. Channel ini sifat-nya synchronous
karena ada blocking. Channel bisa didefinisikan dengan bentuk variabel dengan keyword chan
. Variabel ini memiliki tugas untuk mengirim dan menerima data.