ν°μ€ν 리 λ·°
κ°μ
- κ³ λ£¨ν΄(goroutine)κ³Ό μ±λ(channel)μ λν΄μ μμ보μ
κ³ λ£¨ν΄(goroutine)
- κ³ λ£¨ν΄μ Goλ°νμμμ λΉλκΈ° μ²λ¦¬λ₯Ό μ΄μ©ν λμμ±μ μ§μνλ κ²½λ κ°μ μ°λ λμ΄λ€.
- κ°μ μ°λ λλΌλ κ²μ μ€μ λ‘ OSλ 벨μμ μ°λ λκ° μμ±λλ κ²μ΄ μλλΌ μ ν리μΌμ΄μ (Go)λ 벨μμ κ°μμ μ°λ λκ° μμ±λλ κ²μ μλ―Ένλ μ£Όμνμ
- λ°νμμμλ§ λμνκΈ° λλ¬Έμ main λ°νμμ΄ μ’ λ£λλ©΄ λͺ¨λ κ³ λ£¨ν΄μ΄ μ’ λ£λλ μ£Όμνμ
go
ν€μλλ₯Ό μ΄μ©ν΄ κ³ λ£¨ν΄μ μ μΈνλ€- λ€μ μμλ₯Ό ν΅ν΄μ κ³ λ£¨ν΄μ μ¬μ©λ²μ μμ보μ
import (
"fmt"
"time"
)
func main() {
// go ν€μλλ₯Ό μ΄μ©ν΄ κ³ λ£¨ν΄ μμ± -> λμμ μ€νλ¨. μ 체 μΆλ ₯μ 보면μ μ΄ν΄ν΄λ³΄μ
go bar("foo")
bar("bar")
/* μ 체 μΆλ ₯
bar 0
foo 0
foo 1
bar 1
bar 2
foo 2
*/
}
func bar(name string) {
for i := 0; i < 10; i++ {
fmt.Println(name, i)
time.Sleep(time.Second)
}
}
channels
- κ³ λ£¨ν΄ κ°μ channelμ μ΄μ©ν΄ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ€
chan
νμ μ μ΄μ©νλ©° λ³΄ν΅ κ³ λ£¨ν΄μΌλ‘ μ¬μ©ν ν¨μμ 맀κ°λ³μλ‘ μ±λμ μ λ¬νλ μμΌλ‘ μ¬μ©νλ€- μ±λμ λ°μ΄ν°λ₯Ό μ λ¬ν λλ
channel <- true
μ κ°μ νμμΌλ‘ μμ±νλ€ - channelμ μ μ‘λ λ°μ΄ν°λ
<-channel
μ μ΄μ©ν΄ λ°μ μ μλ€ - λ€μ μμλ₯Ό ν΅ν΄ μμ보μ
- *μ€μ : main λ°νμμ΄ μ’ λ£ μμ κ³ λ£¨ν΄μ΄ λͺ¨λ μ’ λ£λλ―λ‘ μ΄ μ μ νμ μ£Όμνμ
func foo(person string, channel chan bool) {
time.Sleep(time.Second * 3)
fmt.Println(person)
channel <- true
}
func main() {
channel := make(chan bool)
people := [2]string{"a", "b"}
for _, person := range people {
go foo(person, channel)
}
for range people {
fmt.Println(<-channel)
}
}
λ°μν
'Go' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Golang - Rate Limit (0) | 2023.09.16 |
---|---|
Go : struct, type, method (0) | 2022.03.20 |
Go κΈ°λ³Έ λ¬Έλ²μ λν΄μ μμ보μ (0) | 2022.03.18 |
곡μ§μ¬ν
μ΅κ·Όμ μ¬λΌμ¨ κΈ
μ΅κ·Όμ λ¬λ¦° λκΈ
- Total
- Today
- Yesterday
TAG
- AWS re:Invent 2023
- μ’μ κ°λ°μ
- Golang
- ν(Heap)
- κΉμ΄/λλΉ μ°μ νμ(DFS/BFS)
- μΆμ μ§λ
- kotlin s3 upload
- λ°±μ€
- μ½λ©ν μ€νΈ
- HTTP
- mysql
- 2λ μ°¨ μλ² κ°λ°μ
- golang oomkilled
- 2023 νκ³
- grpc client
- μ€ν/ν
- μ₯μ νκ³
- 2023 κ°λ°μ νκ³
- rate limit
- μκ³ λ¦¬μ¦
- νλ‘κ·Έλλ¨Έμ€
- ν΄μ
- Go
- λ± ν¬μλ¬λ κ°λ°μ
- μ’μ μ½λλ 무μμΈκ°?
- μ’μ κ°λ°μ λκΈ°
- νΈλμμ 격리 μμ€
- mysql μ€ν κ³ν
- μ’μ μμ§λμ΄
- Aws Reinvent 2023
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
κΈ λ³΄κ΄ν¨