"Go 싱글턴"의 두 판 사이의 차이

잔글 (Jmnote님이 Go 싱글톤 문서를 Go 싱글턴 문서로 이동했습니다)
2번째 줄: 2번째 줄:
;Go 싱글톤
;Go 싱글톤


<syntaxhighlight lang='go' multi>
<syntaxhighlight lang='go' multi file="singleton.go">
package main
package main


31번째 줄: 31번째 줄:
}
}
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang='go' multi>
<syntaxhighlight lang='go' multi file="main.go" main>
package main
package main



2023년 4월 17일 (월) 13:03 판

1 개요

Go 싱글톤
package main

import (
    "fmt"
    "sync"
)

var once sync.Once

type single struct {
}

var singleInstance *single

func getInstance() *single {
    if singleInstance == nil {
        once.Do(
            func() {
                fmt.Println("Creating single instance now.")
                singleInstance = &single{}
            })
    } else {
        fmt.Println("Single instance already created.")
    }

    return singleInstance
}
package main

import (
    "fmt"
)

func main() {

    for i := 0; i < 9; i++ {
        go getInstance()
    }
}

2 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}