Go è¨èªã¯ struct ã®ã¬ã·ã¼ãããã¤ã³ã¿ã®å ´åã¯å®ä½ã§ãã£ã¦ããã¤ã³ã¿ã®å ´åã§ãã£ã¦ãå¼ã³åºããã®ã§ããã struct ãåç §ã«ã¦ã³ãã«å¾ãåä½ããæ§ãªå ´åã¯å®ä½ã§ã³ãã¼ããã¦ãã¾ã£ã¦ã¯å°ãå ´åãããã¾ããä¾ãã°ä»¥ä¸ã®æ§ãªã¤ã³ã¿ãã§ã¼ã¹ãèãã¾ãã package main import ( "fmt" "sync/atomic" "time" ) type foo struct { n int64 q chan struct{} } func (f *foo) Add() { if atomic.AddInt64(&f.n, 1) == 1 { f.q = make(chan struct{}) } } func (f *foo) Done() { if atomic.AddInt64(&f.n, -1) == 0 { f.q <- struct{}{} } } func (f
{{#tags}}- {{label}}
{{/tags}}