#Goroutine

8 artikel

Mengenal Dan Implementasi Sync Atomic Pada Golang

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

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

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

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

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

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

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

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.