在Linux环境下,使用Golang实现并发控制可以通过以下几种方式:
go。例如:package main
import (
"fmt"
"time"
)
func printNumbers() {
for i := 1; i <= 5; i++ {
fmt.Printf("Number: %d\n", i)
time.Sleep(1 * time.Second)
}
}
func main() {
go printNumbers()
time.Sleep(6 * time.Second)
}
package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.WaitGroup
counter := 0
var mu sync.Mutex
for i := 0; i < 10; i++ {
wg.Add(1)
go func() {
defer wg.Done()
mu.Lock()
counter++
mu.Unlock()
}()
}
wg.Wait()
fmt.Printf("Counter: %d\n", counter)
}
package main
import (
"fmt"
"time"
)
func main() {
ch1 := make(chan string)
ch2 := make(chan string)
go func() {
time.Sleep(1 * time.Second)
ch1 <- "Message from channel 1"
}()
go func() {
time.Sleep(2 * time.Second)
ch2 <- "Message from channel 2"
}()
select {
case msg1 := <-ch1:
fmt.Println(msg1)
case msg2 := <-ch2:
fmt.Println(msg2)
}
}
总之,在Linux环境下使用Golang实现并发控制可以通过goroutines、channels、select语句以及"sync"包中的原语来实现。在实际应用中,可以根据具体需求选择合适的方法来实现并发控制。