Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "encoding/json"
- "fmt"
- "runtime"
- "time"
- )
- type Profile struct {
- Name string `json:"name"`
- Age uint `json:"age"`
- }
- func Publisher(data string, channel chan interface{}) {
- channel <- string(data)
- }
- func Subscribe(channel chan interface{}) {
- profile := <-channel
- fmt.Println(profile)
- }
- func main() {
- // set core max to use for gorutine
- runtime.GOMAXPROCS(2)
- // init channel
- profileChannel := make(chan interface{})
- // set value for struct
- var profile Profile
- profile.Name = "john doe"
- profile.Age = 23
- // convert to json
- toJson, _ := json.Marshal(profile)
- // sending channel data
- go Publisher(string(toJson), profileChannel)
- // get channel data
- go Subscribe(profileChannel)
- // delay gorutine 1000 second
- time.Sleep(time.Second * 1)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement