Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "sync"
- "fmt"
- "math/rand"
- "time"
- )
- func main (){
- akun[3].Name = fmt.Sprint("Penerima")
- akun[3].Saldo = 0
- var w sync.WaitGroup
- var m sync.Mutex
- for i := 0; i < 1000; i++ {
- w.Add(1)
- go increment(&w, &m, i)
- }
- w.Wait()
- fmt.Println("final value of x", x)
- for i:= 0;i<4;i++ {
- fmt.Println(akun[i])
- }
- }
- var x = 0
- var akun = [4]Bank{
- {
- Name:"Raisul",
- Saldo:100000,
- },
- {
- Name:"Fadhlan",
- Saldo:100000,
- },
- {
- Name:"Faizal",
- Saldo:100000,
- },
- {
- Name:"Ecak",
- Saldo:0,
- },
- }
- func increment(wg *sync.WaitGroup, m *sync.Mutex, i int) {
- //m.Lock()
- //time.Sleep(1*time.Second)
- x = x + 1
- myrand := random(0, 3)
- transaksi := random(0,10)
- fmt.Println("Random : " , myrand)
- fmt.Println("Transaksi : ",transaksi )
- akun[myrand].Saldo -= transaksi
- akun[3].Saldo += transaksi
- //akun[3].Saldo = akun[3].Saldo + akun[i].Saldo
- //akun[i].Saldo -= akun[i].Saldo
- //m.Unlock()
- wg.Done()
- }
- type Bank struct {
- Name string `json:"name"`
- Saldo int `json:"saldo"`
- }
- func random(min, max int) int {
- rand.Seed(time.Now().Unix())
- return rand.Intn(max - min) + min
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement