#Tutorial

135 artikel

Mengenal Package Context With Cancel Pada Golang

Mengenal Package Context With Cancel Pada Golang

Pengenalan package context.WithCancel

Context yang bisa menambahkan value, kita juga bisa menambahkan sinyal cancel ke dalam context. Biasanya context cancel ini dipakai saat kita butuh menjalankan proses lain, dan kita ingin memberi cancel ke proses tersebut. context cancel ini dijalankan biasanya menggunakan goroutine yang berbeda sehingga dengan mudah kita ingin membatalkan proses eksekusi goroutine tersebut, jadi tingal kita kirim sinyal cancel ke dalam context maka goroutine yang ingin kita stop sudah bisa kita lakukan.

Mengenal Package Context With Value Pada Golang

Mengenal Package Context With Value Pada Golang

Pengenalan package context.WithValue

Pada awal penjelasan context kita tahu bahwa context akan dibuat pertama kali saat inisialisasi dengan menggunakan context.Background() atau context.TODO() yang mana pada context tersebut tidak memiliki value alias masih kosongan. Kita bisa menambahkan value dari sebuah context dengan konsep seperti map yaitu [key - value].

Mengenal Package Context Pada Golang

Mengenal Package Context Pada Golang

Pengenalan package context

Context merupakan package yang bisa menyimpan dan membawa suatu data value, sinyal timeout dan sinyal deadline. Context ini berjalan dan dibuat per satu request. Pada context biasanya akan membawa value dari inisialisasi sampai akhir proses dijalankan. Context ini kadang jadi keharusan ketika kita melakukan kode pada program agar dari awal fungsi menuju ke fungsi selanjutnya itu bisa digunakan value sebelumnya apabila proses pada fungsi selanjutnya membutuhkan data dari proses awal.

Mengenal Package Ticker Pada Golang

Mengenal Package Ticker Pada Golang

Pengenalan package time.Ticker

Package golang ini adalah package yang digunakan untuk perulangan untuk kejadian tertentu yang nantinya akan terus diulan dalam waktu tertentu. Ticker ini jika sudah expire maka akan mengirim ke dalam channel sebuah trigger atau signal.

Mengenal Package Timer Pada Golang

Mengenal Package Timer Pada Golang

Pengenalan package time.Timer

time.Timer adalah package yang berhubungan dengan waktu atau kejadian yang akan terjadi saat proses dijalankan. Misalkan kita akan memberikan delay selama beberapa detik untuk menuju ke proses selanjutnya atau ada skema hal lain.

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.

Mengenal Deadlock Dan Cara Mengatasinya Pada Golang

Mengenal Deadlock Dan Cara Mengatasinya Pada Golang

Pengenalan

Salah satu masalah yang terjadi ketika menggunakan concurrent atau paralel yaitu sistem deadlock. Apa itu deadlock? Deadlock adalah kejadian dimana sebuah proses concurrent atau goroutine saling menunggu (lock) sehingga tidak ada satupun goroutine yang bisa berjalan. Maka hati-hati bagi Anda jika membuat aplikasi atau program yang mengimplementasikan mutex lock and unlock dengan menggunakan goroutine. Baiklah kita akan coba saja langsung bagaimana simulasi pada program golang ketika terjadi deadlock.