Programming

109 Artikel tersedia

Getting to Know Sync Map on Golang

Getting to Know Sync Map on Golang

Introduction to sync.Map

This sync.Map is actually very similar to the regular Generic Golangnya map, but the difference is that this map is safe to use during concurrent goroutines.

Getting to know the Sync Pool on Golang

Getting to know the Sync Pool on Golang

Introduction to sync.Pool

We often hear sync.Pool when implementing a design pattern called Object Pool Pattern. A Pool is a temporary set of objects that can be stored and retrieved individually. A Pool is safe to be used by multiple goroutines simultaneously.

Getting to Know WaitGroup on Golang

Getting to Know WaitGroup on Golang

Introduction

Waitgroup is a feature of Golang that is used to wait for a process carried out by several goroutines. This is done because we need to do the process simultaneously but when we continue the next process we need data from the previous result so we have to wait first from the previous process to get the data.

Knowing Deadlock and How to Overcome It in Golang

Knowing Deadlock and How to Overcome It in Golang

Introduction

One of the problems that occurs when using concurrent or parallel is the deadlock system. What is deadlock? Deadlock is an event where a concurrent process or goroutine waits for each other (lock) so that none of the goroutines can run. So be careful if you create an application or program that implements mutex lock and unlock using goroutines. Well we will try directly how to simulate the golang program when there is a deadlock.

How to Create RW Mutex and Its Use in Golang

How to Create RW Mutex and Its Use in Golang

Introduction to Sync.RWMutex

After we have learned Introduction and Creation of `Mutex` in the previous post, then we will continue to the next stage which is the introduction of RWMutex. Now what is the difference with the previous one?

How to Create Mutex and Its Use in Golang

How to Create Mutex and Its Use in Golang

Introduction of Sync.Mutex

Mutex or stands for Mutual Exclusion is a way to overcome race conditions in the Golang language. Mutex can be used to do locking and unlocking of a mutex so that if it is locked it will not be able to do locking again until we do unlocking.

How to Communication Golang with MSSQL Server

How to Communication Golang with MSSQL Server

Dependency

Make sure you have created a project with go mod init mssql-go in the mssql-go folder and the dependency that we will use is using

How To Communication Golang with MongoDB

How To Communication Golang with MongoDB

Dependecy Needed

Add some dependency when we used

"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"

Create a Database Connection

create database connection function into mongoDB.

How To Communication Golang with Postgres Database

How To Communication Golang with Postgres Database

Dependency

Make sure you have created a project with go mod init postgres-go in the postgres-go folder and the dependency that we will use is using

How to Communication Golang with MySQL Database

How to Communication Golang with MySQL Database

Package atau Library

import  "github.com/go-sql-driver/mysql"

Project Initialization

Prepare a new folder with the name mysql-native, then initialize the Golang module to make it more modular. Here’s a quick command.

Usage Channel Select Range Timeout

Usage Channel Select Range Timeout

The existence of channels really helps us to manage the goroutines that are running in our program. There are times when we also need to manage many goroutines and many channels are needed. So, this is where select comes in handy. select allows us to control data communication through channels. It is used in the same way as the switch selection condition.

Channel Introduction to Golang

Channel Introduction to Golang

A channel is a link from one goroutine to another and this channel is synchronous because of blocking data processes. Channels can be defined as variables with the keyword chan. This variable has the task of sending and receiving data.