UnBuffered channel 與 Buffered channel
UnBuffered channel
package main
import (
"fmt"
)
func main() {
c := make(chan int)
c <- 10
fmt.Println(<-c)
}Buffered Channel
Last updated
package main
import (
"fmt"
)
func main() {
c := make(chan int)
c <- 10
fmt.Println(<-c)
}Last updated
package main
import (
"fmt"
)
func main() {
c := make(chan int)
go func() {
c <- 10
}()
fmt.Println(<-c)
}package main
import (
"fmt"
)
func main() {
c := make(chan int)
c <- 10
go func() {
fmt.Println(<-c)
}()
}package main
import (
"fmt"
"sync"
)
func main() {
c := make(chan int)
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
c <- 10
}()
wg.Add(1)
go func() {
defer wg.Done()
fmt.Println(<-c)
}()
wg.Wait()
}package main
import (
"fmt"
"sync"
)
func main() {
c := make(chan int)
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
c <- 10
fmt.Println(<-c)
}()
wg.Wait()
}package main
import (
"fmt"
"sync"
)
func main() {
c := make(chan int, 1)
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
c <- 10
fmt.Println(<-c)
}()
wg.Wait()
}package main
import (
"fmt"
)
func main() {
c := make(chan int, 1)
c <- 10
fmt.Println(<-c)
}package main
import (
"fmt"
)
func main() {
c := make(chan int, 1)
c <- 10
c <- 20
fmt.Println(<-c)
}package main
import (
"fmt"
)
func main() {
c := make(chan int, 1)
c <- 10
fmt.Println(<-c)
c <- 20
fmt.Println(<-c)
}